我有一个聊天应用,如果ListView
项目不足以滚动,那么该行应位于列表的顶部。如果项目足以触发滚动,那么列表应滚动总是向下滚动以显示最新的对话,就像在iMessage设置中一样。
我尝试添加XML:
机器人:stackFromBottom = “真”
但是这会导致ListView
向下滚动ALWAYS.
我只想向下滚动,如果项目足以导致滚动,如果没有那么它应该向上滚动。
如果我能检测到滚动的启用,我会使用它:
myListView.post(new Runnable() {
@Override
public void run() {
// Select the last row so it will scroll into view...
myListView.setSelection(myListAdapter.getCount() - 1);
}
});
那么我如何检测ListView
项是否足以触发滚动?
答案 0 :(得分:1)
你可以尝试这个来检测可滚动的
if (yourListView.getLastVisiblePosition() == yourListView.getAdapter().getCount() -1)
{
//It is scrolled all the way down here
}
检查最后一个可见项目的项目编号是否仍然较小:)
答案 1 :(得分:0)
我通过在listView.setSelection(rowAdapter.getCount());
之后放置此代码listView.setAdapter(rowAdapter);
来解决此问题。当聊天消息很少时,它会向上滚动,当消息足以触发滚动时,它会滚动到底部。就像我想要的那样。