如何从适配器知道 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 的项目是不是可见?的主要内容,如果未能解决你的问题,请参考以下文章