jra*_*rez 287 android listview scroll
我想,以确保列表中滚动一路底部,我以listAdapter更新列表视图后,使其显示在列表中输入的最后一个元素.我怎样才能做到这一点 ?
我试过这个但没有运气:
lv.setTranscriptMode(ListView.TRANSCRIPT_MODE_ALWAYS_SCROLL);
Run Code Online (Sandbox Code Playgroud)
谢谢
Mas*_*Lee 412
假设您知道列表数据何时发生更改,您可以通过将列表选择设置为最后一行来手动指示列表滚动到底部.就像是:
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);
}
});
}
Run Code Online (Sandbox Code Playgroud)
dev*_*ini 235
您需要在列表视图中使用这些参数:
滚动
lv.setTranscriptMode(ListView.TRANSCRIPT_MODE_ALWAYS_SCROLL);
将列表的头部设置为底部
lv.setStackFromBottom(true);
您也可以在XML中设置这些参数,例如.像这样:
<ListView
...
android:transcriptMode="alwaysScroll"
android:stackFromBottom="true" />
Run Code Online (Sandbox Code Playgroud)
Wär*_*ing 35
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);
}
});
Run Code Online (Sandbox Code Playgroud)
Ále*_*lex 28
我已经成功使用它来响应按钮点击,所以我猜你也可以在更新内容后使用它:
myListView.smoothScrollToPosition(theListAdapter.getCount() -1);
Run Code Online (Sandbox Code Playgroud)
Kla*_*hen 12
要在ListFragment中获取此内容:
getListView().setTranscriptMode(ListView.TRANSCRIPT_MODE_ALWAYS_SCROLL);
getListView().setStackFromBottom(true);`
Run Code Online (Sandbox Code Playgroud)
添加了这个答案,因为如果有人在谷歌搜索与ListFragment相同的问题,他只是找到了这个..
问候
使用:将列表的头部设置为底部 lv.setStackFromBottom(true);
为我工作,当列表首次进入可见性时,列表会自动滚动到底部.然后列表按原样滚动TRANSCRIPT_MODE_ALWAYS_SCROLL
.
我用
setTranscriptMode(ListView.TRANSCRIPT_MODE_NORMAL);
Run Code Online (Sandbox Code Playgroud)
在底部添加条目,较旧的条目从顶部滚动,就像聊天记录一样
归档时间: |
|
查看次数: |
209333 次 |
最近记录: |