在后台加载整个 ListView 并在每个 ListItem 中获取一个 UIControl

Posted

技术标签:

【中文标题】在后台加载整个 ListView 并在每个 ListItem 中获取一个 UIControl【英文标题】:load the entire ListView in background and get an UIControl inside each ListItem 【发布时间】:2012-10-16 01:06:05 【问题描述】:

即使项目视图没有显示在屏幕上,我也需要完全加载一个 ListView 并在每个 ListItem 中获取一个 UIControl。

我尝试了 ChildViewAdded 事件,但它仅在 ListItem 显示在屏幕上时引发。

所以,我需要一种方法在显示之前以编程方式准备我的 UI ListView。

提前感谢您的帮助。

【问题讨论】:

【参考方案1】:

快速回答 - 如果您需要为列表中的每个项目提供一个真实的视图,那么您不想使用像 ListView 这样的虚拟化控件。

相反,您可以在 ScrollView 内的垂直 LinearLayout 内使用重复的自定义视图。

如果使用 mvvmcross,您可能会发现 MVXBindableLinearLayout 有助于执行此操作 - 它有一个 ItemsSource 和一个模板,就像 MvxBindableListView 一样。


我不知道您尝试做的事情是否有意义,但如果您愿意,以上内容应该可以帮助您做到这一点!

不要尝试对包含大量项目的列表使用线性布局 - 你会耗尽资源。

【讨论】:

我改变了我的设计以满足我的需要。我发现 MvxBindableListView 中的 ChildViewAdded 事件仅针对屏幕上可见的第一个项目引发,但是当向下滚动时,该事件永远不会再次引发!只有当方向改变并再次遵循以前的行为时。不知道是不是bug? 阅读我对您上一个问题的回答。这不是一个错误。这就是列表的工作方式 - 它重用视图。 一个列表可以显示数百万条记录 - 因此它的设计使您不需要每条记录一个视图 - 只需足够的视图覆盖可见屏幕。

以上是关于在后台加载整个 ListView 并在每个 ListItem 中获取一个 UIControl的主要内容,如果未能解决你的问题,请参考以下文章

Ajax 使用ajax加上get和post方法,通过后台加载数据,并在网页上进行显示案例+解释

Android 下载多个文件并在 ListView 中显示进度

从 Ajax GET 方法接收数据后,使用 Django Listview 类重新加载页面

我需要从后台线程访问listview的适配器

layui在加载时,从后台返回的Json数据应该是啥样的数据

如何在列表视图的每个项目上加载 json 数据并显示在 android 的另一个活动中获取的数据?