我们有一个数据驱动的活动,它构造一个大型的Button类组件集(通常为100),并将它们放在一个可滚动的位置。每个按钮都是从资源中充气的,并且是基于RelativeLayout的。该按钮有两个文本视图,两个图像视图--都来自资源--并且有一个9补丁的背景。
图像视图的大小、位置、文本和配置都是由数据库查询驱动的。
不幸的是,这需要2-3秒来布局宏达电的愿望,3-5秒的宏达电旧金山或宏达蓝宝石。
一旦完成了初始布局,视图就会执行得很漂亮。
我们尝试了一些没有任何影响的战略:
我们有一个不确定的进度指示符(spinner/throbber),它在查询运行在另一个线程上时旋转,但当布局开始运行时会冻结。
因此,我的问题是:
谢谢。
编辑
滚筒被设置为水平和垂直滚动。因此,我们有一个网格,屏幕上是一个视图。
这使得使用内置的ListView (乍一看)不适合该任务。
发布于 2011-05-25 22:39:22
进度指示符不会在布局期间重新绘制,因为所有这些都发生在UI线程中。
为了提高性能,您应该使用ListView,它是可滚动的,可以使用自定义适配器自定义项目(您可以重用基于RelativeLayout的“按钮”),并且允许在滚动时回收项目。请参阅列表视图中的回收视图,值得吗?,以及最重要的是摘录自CommonsWare关于Android的书。
https://stackoverflow.com/questions/6131481
复制相似问题