如何从适配器知道 ListView 的项目是不是可见?

Posted

技术标签:

【中文标题】如何从适配器知道 ListView 的项目是不是可见?【英文标题】:how to know from adapter if the item of ListView is visible or not?如何从适配器知道 ListView 的项目是否可见? 【发布时间】:2012-06-24 12:43:31 【问题描述】:

我有一个连接到 ListView 的适配器,例如

mJournalAdapter = new JournalAdapter();
journalEntryList.setAdapter(mJournalAdapter);

并且我想知道在我的JournalAdapter 内部是否可以看到某些视图(ListView 的项目),这可能吗?

【问题讨论】:

【参考方案1】:

如果您知道该项目的位置,那么您可以使用

int last = listView1.getLastVisiblePosition();  

int first = listView1.getFirstVisiblePosition();

【讨论】:

【参考方案2】:

你可以获得回调,覆盖OnDetachedFromWindow();视图中的方法

【讨论】:

这不是你在ListView 中应该做的事情。你在重新发明***。其他 2 个答案是合法的。 这不是重新发明***。事实上,这是一种很好的处理与 listview/recyclerview/adapter 分离的视图回收的方法【参考方案3】:

您可以使用getFirstVisiblePosition() 将在 ListView 中为您提供第一个可见项,因此您可以在您的情况下使用它。

【讨论】:

以上是关于如何从适配器知道 ListView 的项目是不是可见?的主要内容,如果未能解决你的问题,请参考以下文章

ListView:如何从列表中访问视图以更改背景颜色?

如何在android的listview中获取项目的视图?

列表组件之ListView

Android:如何从 listView 和 arrayAdapter 中删除项目

Android:如何禁用 ListView?

如何从android的listview中的不同项目获取数据