在后台加载整个 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 类重新加载页面