Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何知道哪个列表项对用户可见?_Android_Listview - Fatal编程技术网

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
extends
AdapterView
。因此,JavaDoc for
ListView
不会有多大帮助,而是使用für
AdapterView