Leo--Wang 2015-10-14 09:00 采纳率: 0%
浏览 620

怎么取到listview屏幕外的内容?

写了一个方法要便利listview中所有的数据,但一个屏幕内显示不完,所以便利的时候便会出现FC

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-04 12:06
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    在Android中,你可以使用ListView.getAdapter().notifyDataSetChanged()来刷新整个列表。但是,这将导致你的应用程序在处理大量数据时出现性能问题。

    如果你想要在只更新部分数据的情况下避免性能问题,你可以在每次请求更新时检查mHasMoreData字段。如果它为false,则表明没有更多数据可以加载。在这种情况下,你可以直接返回null,而不是调用notifyDataSetChanged()

    以下是一个简单的示例:

    private void loadMore() {
        if (!mHasMoreData) {
            return;
        }
        // 这里是你的逻辑
    }
    

    然后,在你的适配器的onItemRangeClickListener或onItemRangeSelectedListener中添加这个方法:

    @Override
    public boolean onItemRangeClick(AdapterView<?> parent, View view,
                                    int positionStart, int itemCount) {
        loadMore();
        return false;
    }
    

    这样,当mHasMoreData为true时,你会调用loadMore(),否则就不会调用notifyDataSetChanged()。这样可以避免性能问题,并且可以让你根据实际情况决定是否加载更多的数据。

    评论

报告相同问题?