【问题标题】:Check if android listview is scrolled down to the last item检查android listview是否向下滚动到最后一项
【发布时间】:2014-08-17 23:29:06
【问题描述】:

我有一个列表视图,其中有几个项目。我想检查列表是否向下滚动到最后一项,在这种情况下我想运行另一个方法。怎么做?

【问题讨论】:

  • 您使用自定义适配器吗?
  • 是的,我使用自定义适配器。
  • 你需要一个无穷无尽的列表广告。见这里:survivingwithandroid.com/2013/10/…
  • @vasudev 这很有用。我会尝试实现它。

标签: android android-listview


【解决方案1】:

首先在构造函数或onCreate方法中设置isLoading = false;

  mListView.setOnScrollListener(new OnScrollListener() {

        @Override
        public void onScrollStateChanged(AbsListView view, int scrollState) {

        }

        @Override
        public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {
            if (mListView.getAdapter() == null)
                return ;

            if (mListView.getAdapter().getCount() == 0)
                return ;

            int l = visibleItemCount + firstVisibleItem;
            if (l >= totalItemCount && !isLoading) {
                // It is time to add new data. We call the listener
                isLoading = true;
                loadData();

            }
        }
    });

loadData 函数中,您可以执行以下操作:

 public void loadData() {

    // send your request
   // receive it by callback or asynctask
   yourDataList.addAll(newItems);
   adapter.notifyDataSetChanged();
   isLoading = false;
}

【讨论】:

  • @pratim 我的解决方案有什么问题吗?
  • 我会检查一下,它似乎对我有用。由于我的声誉低,请不要投票。
  • 我没有任何问题。我无法测试,因为我的 ide 遇到了一些问题。我将尽快测试实施您的解决方案。届时我将接受您的正确答案..
  • @pratim 如果您想从 Internet 下载或创建一个无休止的列表,它必须稍作更改并且必须在其上放置一个变量,如果是这样,请告诉我修复我的意思是如果您的 newItems 准备好您这样做不需要那个变量,但如果它还没有准备好,你必须改变它,以便它可以请求下载一次。
  • 我计划从互联网上批量下载 10 个项目。所以在第一次加载时,我将获得 10 个项目,这些项目将显示在 lv 中并将我活动中的 batchNo 字段保存到1.当 lv 向下滚动到第 10 个项目时,我将运行异步任务以检索包含 10 个项目的第二批。随后,在接收项目时,我将更新 lv 并增加 batchNo 字段。你说的是变量的 batchNo 字段吗?还是需要其他一些变量?
【解决方案2】:

看看listView.getLastVisiblePosition()

【讨论】:

  • 我实际上想在到达最后一个位置时用新数据刷新适配器。我应该如何在向下滚动时继续检查?
猜你喜欢
  • 2014-09-05
  • 2018-04-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-08
  • 1970-01-01
相关资源
最近更新 更多