检测listView android中的向下滚动

时间:2013-10-17 16:43:16

标签: android android-listview

我有一个要求

我有一个大数据必须放在列表视图中,加载所有数据并填充在列表视图中太愚蠢所以我从服务器加载10个第一项并填充在listView中。

因此,每当用户向下滚动列表视图的底部(他们查看了所有前10项)我的应用程序将自动加载下一个10项。

问题是:无论如何我能检测到用户是否在前10项的底部?

抱歉我的英文。感谢任何帮助!

4 个答案:

答案 0 :(得分:0)

您可以通过以下代码检测滚动结束

if (yourListView.getLastVisiblePosition() == yourListView.getAdapter().getCount() -1 &&
    yourListView.getChildAt(yourListView.getChildCount() - 1).getBottom() <= yourListView.getHeight())
{
    //It is scrolled all the way down here

}

希望它有所帮助。

答案 1 :(得分:0)

您可以将监听器注册到OnScroll事件,然后检测您必须开始重新加载数据的位置:

ListView listView = (ListView)findViewById(R.id.list_view_id);
listView.setOnScrollListener(new OnScrollListener() {
        @Override
        public void onScroll(AbsListView view, int firstVisibleItem, int amountVisible, int totalItems) {
            //now get the point where you have to reload data
            if (firstVisibleItem+1 + amountVisible > totalItems) {
                //reload your data here
            }
        }
    });

答案 2 :(得分:0)

数据来自哪里?通过游标从DB加载大型数据集是很常见的,然后使用简单的游标适配器填充列表视图。 (而且我说的是10,000行)。只要你在后台(光标加载器)执行它就不应该是一个问题,它可能比尝试自己管理滚动要容易得多。

答案 3 :(得分:0)

尝试this,它会实现一个列表视图,当用户到达底部时会提取更多项目,在加载更多项目时也会使用底部的进度条。 我之前使用过它,它可以很好地满足您的需求。