首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当Scroll到达底部时加载更多数据

当Scroll到达底部时加载更多数据
EN

Stack Overflow用户
提问于 2014-12-04 16:22:33
回答 4查看 3.3K关注 0票数 0

我是Android的新手。我的需求是加载额外的数据&当滚动到底部时,设置为列表视图。我可以调用下一个数据,但我之前的数据是隐藏的。如何纠正这一点?

代码语言:javascript
复制
 listView.setOnScrollListener(new OnScrollListener() {

                @Override
                public void onScrollStateChanged(AbsListView view,
                        int scrollState) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void onScroll(AbsListView view,
                        int firstVisibleItem, int visibleItemCount,
                        int totalItemCount) {
                    // TODO Auto-generated method stub
                    if (listView.getLastVisiblePosition() == listView
                            .getAdapter().getCount() - 1
                            && listView.getChildAt(
                                    listView.getChildCount() - 1)
                                    .getBottom() <= listView
                                    .getHeight()) {
                        // scroll end reached

                        if (nextCall == null || nextCall == ""
                                || nextCall.equals("null")
                                || nextCall.equals("")) {

                        } else {

                            hostname=nextCall;

                            new ArticlesList().execute();

                        }

                        // Write your code here
                    }else{

                    }

                }
            });
            dialog.dismiss();
        } else {

            Toast.makeText(getActivity(), "Went wrong",
                    Toast.LENGTH_LONG).show();
            dialog.dismiss();
        }
EN

回答 4

Stack Overflow用户

发布于 2014-12-04 16:48:00

访问这里,它描述了如何在列表视图中进行分页。PagingListView

票数 3
EN

Stack Overflow用户

发布于 2014-12-04 17:05:58

在listView适配器中:

代码语言:javascript
复制
    @Override 
    public View getView(int position, View convertView, ViewGroup parent) {

    if (position == items.size() - 1)
    {
        items.add("new data1");
        items.add("new data2");
        notificationDataSetChanged();
    }

    //inject your view here

}

您将丢失您的数据,因为您正在覆盖指向它的链接。您应该添加数据,而不是替换它。

票数 1
EN

Stack Overflow用户

发布于 2014-12-04 20:58:54

你需要的是一个无穷无尽的滚动监听器,请看一下这个:https://github.com/codepath/android_guides/wiki/Endless-Scrolling-with-AdapterViews

只需将此项目添加到您的项目中,并像这样使用它:

代码语言:javascript
复制
yourListView.setOnScrollListener(new EndlessScrollListener() {
    @Override
    public void onLoadMore(int page, int totalItemsCount) {

        ... your asynchTask
    }

    @Override
    public void onScrollStateChanged(AbsListView view, int scrollState) {
        super.onScrollStateChanged(view, scrollState);
    }
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27289251

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档