如何检测ListView项是否足以触发滚动

时间:2014-05-30 08:19:45

标签: android android-listview scroll chat listviewitem

我有一个聊天应用,如果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项是否足以触发滚动?

2 个答案:

答案 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);来解决此问题。当聊天消息很少时,它会向上滚动,当消息足以触发滚动时,它会滚动到底部。就像我想要的那样。