Android 如何知道哪个列表项对用户可见?
我通过我的应用程序录制视频,并将其存储在存储卡中 在我得到这些视频并添加到列表视图之后 根据屏幕大小,用户只能看到一个视频 如果用户上下滚动并停止 在这一点上,我想知道哪一个在用户面前 如果有人知道解决方案,请帮助我。或任何其他方式做Android 如何知道哪个列表项对用户可见?,android,listview,Android,Listview,我通过我的应用程序录制视频,并将其存储在存储卡中 在我得到这些视频并添加到列表视图之后 根据屏幕大小,用户只能看到一个视频 如果用户上下滚动并停止 在这一点上,我想知道哪一个在用户面前 如果有人知道解决方案,请帮助我。或任何其他方式做 如果您正在使用适配器填充列表,请提前感谢, 最后一个可见的项目将弹出到您的最新版本中 也就是说,如果您要跟踪最新的位置,您将存储最后一个可见项目的位置。好的,有两种方法可以帮助您 ListView.getFirstVisiblePosition() ListVie
如果您正在使用适配器填充列表,请提前感谢, 最后一个可见的项目将弹出到您的最新版本中
也就是说,如果您要跟踪最新的
位置
,您将存储最后一个可见项目的位置。好的,有两种方法可以帮助您
ListView.getFirstVisiblePosition()
ListView.getLastVisiblePosition()
查看详细信息。鉴于Marek Sebera的评论-确实,
getView
不会100%可靠,您可以在适配器中使用
(如果一次只能看到一个视频,这就足够了。)因为您只显示列表中的一项,所以您可以在适配器类中创建一个函数,该函数将为您提供当前可见子项的id。像 公共类MyAdapter扩展了BaseAdapter{ int slectedChild;//selectedChild将保存当前可见的子id public int getSelectedChild(){//此函数将返回当前可见子项的id
返回selectedChild;
} //公共视图getView(int位置、视图转换视图、视图组容器)
{
selectedChild=position;//更新side getView()函数中selectedChild的值。
..
}
}
答案的第一部分最终是不对的。Android可以预缓存,如果上下滚动,你需要找出用户可以看到多少项。@MarekSebera你是对的,但那家伙说基于屏幕大小,用户只能看到一个视频。阅读并检查提供的链接:抱歉,我没有收到您的邮件。如果您不介意,请提供一些示例。感谢您的重播。
ListView
extendsAdapterView
。因此,JavaDoc forListView
不会有多大帮助,而是使用fürAdapterView
。