当我的ListView滚动到底部时,如何加载新元素?

时间:2014-03-03 10:29:42

标签: java android

您可以在此处找到我的代码: How to correctly build table with data using onPostExecute and ListView

ListView 滚动到底部时,我需要从服务器加载数据。我试图在Stackoverflow上寻找解决方案,但它对我没有帮助。

此外,如果不难,我想知道如何理解所有这些。

感谢所有人

2 个答案:

答案 0 :(得分:1)

你有2个解决方案:

1)使用OnScrollListener

您必须拥有一个扩展 ListView 的类并实现 OnScrollListener

初始化视图时,将其设置为滚动侦听器: setOnScrollListener(this);

实施方法onScroll。使用参数 firstVisibleItem visibleItemCount totalItemCount 滚动时调用它。

firstVisibleItem+visibleItemCount==totalItemCount到达列表底部时,您可以再次调用 AsyncTask 来加载下一个项目。

2)使用自定义适配器

在您必须覆盖的方法getView中,您可以访问正在渲染的项目的位置,即即将在屏幕上显示。

假设您在List items时到达列表底部时知道的position == items.size()-1项目。然后,您可以调用 AsyncTask

警告

请注意这两个解决方案,如果列表中的所有项目都适合屏幕,则可以经常无故地调用 AsyncTask 。在开始之前,你必须对此进行必要的检查。

答案 1 :(得分:0)

在程序中使用Scroll状态更改侦听器...我希望它肯定能帮到你......

 listStudies.setOnScrollListener(new OnScrollListener() {

        @Override
        public void onScrollStateChanged(AbsListView view, int scrollState) {
            if (Logic Condition) {
                //Here also You can do your Logic here and then you can achieve your wishes.....
            }

        }
        @Override
        public void onScroll(AbsListView view, int firstVisibleItem,
                int visibleItemCount, int totalItemCount) {
             if (Logic Condition) {
                //You just do your Logic here and then you can achieve your wishes.....
            }

        }
    });