android — Как прокрутить вниз в ScrollView при запуске активности" />

Как прокрутить вниз в ScrollView при запуске активности

Я отображаю некоторые данные в ScrollView. При запуске активности (метод onCreate) я заполняю ScrollView данными и хочу прокрутить до конца.

Я пытался использовать getScrollView().fullScroll(ScrollView.FOCUS_DOWN). Это работает, когда я делаю это как действие при нажатии кнопки, но не работает в методе onCreate.

Есть ли способ как прокрутить ScrollView до дна при запуске активности? Это означает, что при первом отображении вид уже прокручивается вниз.

90 голосов | спросил Palo 22 J000000Thursday10 2010, 13:03:54

8 ответов


0

Это нужно сделать следующим образом:

    getScrollView().post(new Runnable() {

        @Override
        public void run() {
            getScrollView().fullScroll(ScrollView.FOCUS_DOWN);
        }
    });

Таким образом, представление сначала обновляется, а затем прокручивается до «нового» дна.

ответил Palo 22 J000000Thursday10 2010, 19:07:23
0

Добавьте следующий код после добавления данных:

final ScrollView scrollview = ((ScrollView) findViewById(R.id.scrollview));
scrollview.post(new Runnable() {
    @Override
    public void run() {
        scrollview.fullScroll(ScrollView.FOCUS_DOWN);
    }
});
ответил Harshid 13 ThuEurope/Moscow2012-12-13T16:52:33+04:00Europe/Moscow12bEurope/MoscowThu, 13 Dec 2012 16:52:33 +0400 2012, 16:52:33
0

Это работает для меня:

scrollview.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
    @Override
    public void onGlobalLayout() {
        scrollview.post(new Runnable() {
            public void run() {
                scrollview.fullScroll(View.FOCUS_DOWN);
            }
        });
    }
});
ответил sonida 31 +04002013-10-31T14:02:33+04:00312013bEurope/MoscowThu, 31 Oct 2013 14:02:33 +0400 2013, 14:02:33
0

Вы можете сделать это в файле макета:

                android:id="@+id/listViewContent"
                android:layout_width="wrap_content"
                android:layout_height="381dp" 
                android:stackFromBottom="true"
                android:transcriptMode="alwaysScroll">
ответил Tam Dao 3 rdEurope/Moscowp30Europe/Moscow09bEurope/MoscowMon, 03 Sep 2012 08:39:07 +0400 2012, 08:39:07
0
 scrollView.postDelayed(new Runnable() {
        @Override
        public void run() {
            scrollView.fullScroll(ScrollView.FOCUS_DOWN);
        }
    },1000);
ответил Makvin 13 12017vEurope/Moscow11bEurope/MoscowMon, 13 Nov 2017 13:37:12 +0300 2017, 13:37:12
0

Сразу после добавления данных в представление добавьте одну строку:

yourScrollview.fullScroll(ScrollView.FOCUS_DOWN);
ответил LEM Adane 7 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowMon, 07 Sep 2015 11:58:08 +0300 2015, 11:58:08
0

Попробуйте это

    final ScrollView scrollview = ((ScrollView) findViewById(R.id.scrollview));
    scrollview.post(new Runnable() {
       @Override
       public void run() {
         scrollview.fullScroll(ScrollView.FOCUS_DOWN);
       }
    });
ответил F.O.O 14 Maypm16 2016, 23:35:02
0

После инициализации компонента пользовательского интерфейса и заполнения его данными. добавить эти строки в ваш метод создания

Runnable runnable=new Runnable() {
        @Override
        public void run() {
            scrollView.fullScroll(ScrollView.FOCUS_DOWN);
        }
    };
    scrollView.post(runnable);
ответил Ramzy Hassan 14 FebruaryEurope/MoscowbTue, 14 Feb 2017 16:58:43 +0300000000pmTue, 14 Feb 2017 16:58:43 +030017 2017, 16:58:43

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132