在使用listAdapter更新listview之后,我想确保列表一直滚动到底部,以便显示列表中输入的最后一个元素 . 我怎样才能做到这一点 ?
我试过这个但没有运气:
lv.setTranscriptMode(ListView.TRANSCRIPT_MODE_ALWAYS_SCROLL);
谢谢
使用:将列表的头部设置为底部 lv.setStackFromBottom(true);
lv.setStackFromBottom(true);
为我工作,当列表首次进入可见性时,列表会自动滚动到底部 . 然后列表按__000048_滚动 .
TRANSCRIPT_MODE_ALWAYS_SCROLL和setSelection的组合使它适用于我
ChatAdapter adapter = new ChatAdapter(this); ListView lv = (ListView) findViewById(R.id.chatList); lv.setTranscriptMode(AbsListView.TRANSCRIPT_MODE_ALWAYS_SCROLL); lv.setAdapter(adapter); adapter.registerDataSetObserver(new DataSetObserver() { @Override public void onChanged() { super.onChanged(); lv.setSelection(adapter.getCount() - 1); } });
假设您知道列表数据何时发生更改,您可以通过将列表选择设置为最后一行来手动指示列表滚动到底部 . 就像是:
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); } }); }
您需要在列表视图中使用这些参数:
滚动 lv.setTranscriptMode(ListView.TRANSCRIPT_MODE_ALWAYS_SCROLL);
将列表的头部设置为底部 lv.setStackFromBottom(true);
您也可以在XML中设置这些参数,例如 . 像这样:
<ListView ... android:transcriptMode="alwaysScroll" android:stackFromBottom="true" />
要在ListFragment中获取此信息:
getListView().setTranscriptMode(ListView.TRANSCRIPT_MODE_ALWAYS_SCROLL); getListView().setStackFromBottom(true);`
添加了这个答案,因为如果有人在谷歌搜索与ListFragment相同的问题,他只是发现这个..
问候
成绩单模式是您想要的,并由Google Talk和SMS / MMS应用程序使用 . 在添加项目时,是否正确调用适配器上的notifyDatasetChanged()?
我用
setTranscriptMode(ListView.TRANSCRIPT_MODE_NORMAL);
在底部添加条目,较旧的条目在顶部滚动,就像聊天记录一样
我已经成功使用它来响应按钮点击,所以我猜你也可以在更新你的内容后使用它:
myListView.smoothScrollToPosition(theListAdapter.getCount() -1);
8 回答
使用:将列表的头部设置为底部
lv.setStackFromBottom(true);
为我工作,当列表首次进入可见性时,列表会自动滚动到底部 . 然后列表按__000048_滚动 .
TRANSCRIPT_MODE_ALWAYS_SCROLL和setSelection的组合使它适用于我
假设您知道列表数据何时发生更改,您可以通过将列表选择设置为最后一行来手动指示列表滚动到底部 . 就像是:
您需要在列表视图中使用这些参数:
滚动
lv.setTranscriptMode(ListView.TRANSCRIPT_MODE_ALWAYS_SCROLL);
将列表的头部设置为底部
lv.setStackFromBottom(true);
您也可以在XML中设置这些参数,例如 . 像这样:
要在ListFragment中获取此信息:
添加了这个答案,因为如果有人在谷歌搜索与ListFragment相同的问题,他只是发现这个..
问候
成绩单模式是您想要的,并由Google Talk和SMS / MMS应用程序使用 . 在添加项目时,是否正确调用适配器上的notifyDatasetChanged()?
我用
在底部添加条目,较旧的条目在顶部滚动,就像聊天记录一样
我已经成功使用它来响应按钮点击,所以我猜你也可以在更新你的内容后使用它: