14

これは簡単な作業だと思いますが、リストビューを一番下までスクロールする方法はないようです。私が見つけたすべてのソリューションは、setSelection(lastItem)選択を最後のアイテムに設定するだけで、その下までスクロールしない方法のバリエーションを使用しています。

私の場合、空のリストビュー (長い空のビューヘッダーが設定されている) があり、その下までスクロールしたいと考えています。

それで、それを行う方法はありますか?

編集:

したがって、興味のある人にとっては、実用的なソリューションは次のとおりです。

getListView().setSelectionFromTop(0, -mHeader.getHeight());

getListView().scrollTo(mOffset)

これは右オフセット (現在のスクロール位置に基づいて計算) でも機能しますが、予期しない結果が生じる可能性があります。

4

10 に答える 10

38

リスト ビューを動的に更新している場合でも、リスト ビューを常に一番下にスクロールしたい場合は、これらの属性をリスト ビュー自体に追加できます。

android:stackFromBottom="true"
android:transcriptMode="alwaysScroll"
于 2014-05-03T07:40:31.423 に答える
11

プログラムでスクロール アニメーションが必要な場合は、次のコマンドを使用してリストの一番下まで簡単にスクロールできます。

listView.smoothScrollToPosition(adapter.getCount());

リストのほとんどを一番上までスクロールするには、次を使用して実現できます。

listView.smoothScrollToPosition(0);
于 2014-02-11T00:25:39.940 に答える
3

これを試してみてください..それはあなたの問題を解決します、私はそれを試しました、そしてそれはうまくいきます.

   listView.post(new Runnable(){
             public void run() {
             listView.setSelection(listView.getCount() - 1);
    }});
于 2014-08-14T20:46:27.267 に答える
2
private void scrollMyListViewToBottom() {
    myListView.post(new Runnable() {
        @Override
        public void run() {
            // Select the last row so it will scroll into view...
            myListView.setSelection(myListAdapter.getCount() - 1);
        }
    });
}

それは私のために働いています

于 2016-11-25T07:22:36.343 に答える
1

試してみてくださいmyListView.smoothScrollToPosition(myListView.getCount() - 1)。これにより、最後の行を選択する必要がなくなります。さらに、スムーズで美しいスクロールが実現します。(:

于 2015-06-14T23:12:34.760 に答える
1

以下を使用して試してください。

listview.setSelection(adapter.getCount()-1);

于 2013-09-25T05:47:19.203 に答える
-2

使ってみてlist.scrollTo(0, list.getHeight());

于 2013-09-25T05:37:11.833 に答える