8

新しいメッセージを受信または送信すると、ListView は自動的に最後までスクロールする必要があります。しかし、Androidキーボードを使用してListViewの下のEditTextからメッセージを送信すると、ListViewのサイズが変更され、送信したい新しいメッセージが画面外に表示され、キーボードが消えてListViewのサイズが再度変更されても、下にスクロールして表示する必要があります。

ListView をスクロールするには、次を使用します。

listView.postDelayed(new Runnable() {
@オーバーライド public void run() { listView.setSelection(listView.getCount()); } }、100);

しかし、私の場合は正しく機能していません。

なぜそれが起こるのか誰にも分かりますか?ListView を常にスクロールして終了する方法はありますか?

ありがとう、あなたの助けは大歓迎です!

4

3 に答える 3

17

コードの代わりにこれを試してください:

listView.setTranscriptMode(ListView.TRANSCRIPT_MODE_ALWAYS_SCROLL);

(または XML レイアウトで設定します)。

于 2013-03-26T18:03:27.097 に答える
8

リストに選択を設定した後、次のコード行を追加してみてください。

listView.smoothScrollToPosition(listView.getCount());

結果のコードは次のようになります。

listView.postDelayed(new Runnable() {
        @Override
        public void run() {
            listView.setSelection(listView.getCount());
            listView.smoothScrollToPosition(listView.getCount());
        }
    }, 100);
于 2012-08-23T12:30:37.467 に答える
1

アクティビティのマニフェストで android:windowSoftInputMode を に設定しadjustPan|adjustResizeます。

于 2012-08-23T08:30:18.417 に答える