232 votes

Android: le ScrollView force vers le bas

Je voudrais un ScrollView pour commencer tout en bas. Toutes les méthodes?

352voto

hungson175 Points 1329

vous devez exécuter le code à l'intérieur de la faire défiler.après comme ceci:

scroll.post(new Runnable() {            
    @Override
    public void run() {
           scroll.fullScroll(View.FOCUS_DOWN);              
    }
});

331voto

CommonsWare Points 402670

scroll.fullScroll(View.FOCUS_DOWN) devrait également travailler.

39voto

https Points 81

Ce qui a fonctionné le mieux pour moi est

scroll_view.post(new Runnable() {
     @Override
     public void run() {
         // This method works but animates the scrolling 
         // which looks weird on first load
         // scroll_view.fullScroll(View.FOCUS_DOWN);

         // This method works even better because there are no animations.
         scroll_view.scrollTo(0, scroll_view.getBottom());
     }
});

28voto

ademar111190 Points 2855

Je incrément de fonctionner à la perfection.

    private void sendScroll(){
        final Handler handler = new Handler();
        new Thread(new Runnable() {
            @Override
            public void run() {
                try {Thread.sleep(100);} catch (InterruptedException e) {}
                handler.post(new Runnable() {
                    @Override
                    public void run() {
                        scrollView.fullScroll(View.FOCUS_DOWN);
                    }
                });
            }
        }).start();
    }

3voto

Frank Points 1074

Lorsque la vue n'est pas encore chargé, vous ne pouvez pas faire défiler. Vous pouvez le faire "plus tard" avec un post ou dormir appeler comme ci-dessus, mais ce n'est pas très élégant.

Il est préférable de planifier le défilement et de le faire à la prochaine onLayout(). Exemple de code ici:

http://stackoverflow.com/a/10209457/1310343

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X