2016-09-20 2 views
2

Je fais cette application de convertisseur et j'ai passé un certain temps à essayer de comprendre comment travailler cette fonction scrollTo() pour faire défiler le bouton que je veux qu'il soit concentré dans une vue de défilement horizontal.Android Studio: scrollTo dans la fonction horizontale ne fonctionne pas

J'ai mis ce qui suit à mon onCreate:

 final HorizontalScrollView HscrollView1 = (HorizontalScrollView)findViewById(R.id.hsView1); 
     final HorizontalScrollView HscrollView2 = (HorizontalScrollView)findViewById(R.id.hsView2); 

     final Button cmBtn = (Button)findViewById(R.id.cm_id); 
     final Button KmBtn = (Button)findViewById(R.id.km_id); 
     final Button mmBtn = (Button)findViewById(R.id.mm_id); 

     HscrollView1.scrollTo((int) mmBtn.getX(), 0); 
     HscrollView2.scrollTo((int) cmBtn.getX(), 0); 

Après l'exécution APK, il ne défilera pas à mm et le bouton cm au démarrage de l'application (contrairement à ce que je l'ai écrit dans le code)

Il me semble si frustrant avec ce scrollview et ce serait génial si quelqu'un peut m'aider ici à 5h du matin (est)

Merci!

Répondre

1

remplacer

HscrollView1.scrollTo((int) mmBtn.getX(), 0); 
    HscrollView2.scrollTo((int) cmBtn.getX(), 0); 

avec

new Handler().postDelayed(new Runnable() { 
       @Override 
       public void run() { 
        HscrollView1.scrollTo((int) mmBtn.getX(), 0); 
        HscrollView2.scrollTo((int) cmBtn.getX(), 0); 
       } 
      }, 500); 

et exécuter votre code.

+0

Merci pour votre réponse! Je ne suis pas tout à fait sûr de ce que vous entendez par "exécution" –

+0

a changé ma réponse –

+0

wow merci! Cela a bien fonctionné sur mon appareil aussi! Une dernière chose! Si je veux centrer la vue (pas tout le chemin vers la gauche), comment les maths fonctionneraient-ils? Merci une fois de plus! –