Thrown out ListView items



我目前在android应用程序中遇到了缩略图加载问题。缩略图显示在列表视图中,我想知道是否有一种方法可以让我知道哪些列表项当前正在使用并存储,以便更快地滚动,这样,如果我从BitmapFactory收到内存不足的响应,我可以回收未使用的缩略图。

为了更清楚地将图像加载到图像视图中,这确实很简单,但有没有一种方法可以观察哪些项目当前正在使用,或者更好的方法是在抛出项目时在列表视图中调用?

提前谢谢。

标准ListView仅动态创建可见项的视图。即使您的列表中的项目比屏幕上的项目多,也不会有超过在屏幕上显示项目所需的视图。

要列出当前在屏幕上可见的项目,请使用ListView.getChildAt()并从0迭代到ListView.getChildCount()。I.E.做这样的事情:

for (int i = 0; i < listView.getChildCount(); i += 1) {
    // the view itself
    View itemView = listView.getChildAt(i);
    // the data it is representing (I used String just as an example)
    String itemData = (String) listView.getItemAtPosition(
            i + listView.getFirstVisiblePosition());
    // do whatever you need to do with it
}

我不知道有什么简单的方法可以让被回收的视图得到通知。也许您可以扩展ListView类并重写一些方法。也许有人已经构建了一个满足您需求的组件。

使用ViewHolder模式或RecyclerView

最新更新