繁体   English   中英

在listView android中检测向下滚动

[英]detect scroll down in listView android

我有一个要求

我必须在列表视图中放入大量数据,而且太愚蠢而无法加载所有数据并在列表视图中进行填充,因此我从服务器加载10个第一项并在listView中进行填充。

因此,每次用户向下滚动到listview的底部(他们查看了所有前10个项目)时,我的应用程序都会自动加载下一个10个项目。

问题是:无论如何,我是否可以检测到用户是否位于前10个项目的底部?

对不起我的英语。 感谢您的帮助!

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

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

}

希望能帮助到你。

您可以向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
            }
        }
    });

数据来自哪里? 通常是通过游标从数据库中加载大型数据集,然后使用简单的游标适配器来填充列表视图。 (我说的是10,000行)。 只要您在后台(光标加载器)中执行此操作就不会有问题,它可能比尝试自己管理滚动容易得多。

尝试此操作 ,它实现了一个列表视图,当用户到达底部时将拉出更多项目,并且在加载更多项目时也会在底部使用进度条。 我以前用过它,它可以很好地满足您的需求。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM