【发布时间】:2011-10-06 23:21:10
【问题描述】:
我需要在我的应用程序中水平和垂直滚动某些数据。我已经覆盖了HorizontalScrollView,并允许它使用Adapter 来填充它的数据。它的行为与水平 ListView 的行为非常相似,只是我没有进行任何视图回收。我的自定义HorizontalScrollView 中的每个项目都是ListView,其项目也填充有Adapter。 ListView 中的每一项都是一个复杂的视图。
我可以水平和垂直滚动,只是它的性能有点笨拙。适配器中用于填充自定义HorizontalScrollView 的getView() 方法仅在第一次在视图上设置Adapter 时调用。但是,我注意到在HorizontalScrollView 中的 ListViews 不断调用 getView()。我想知道这是性能问题吗?
This question 指出了一个与在HorizontalScrollView 内部使用ListView 有关的假定文档错误,但在垂直滚动ScrollView 文档的文档中没有给出相同的警告。
如果我将 ScrollViews 放在 HorizontalScrollView 中会不会出现性能问题?
【问题讨论】:
-
您是否对方法进行了分析以查看性能问题的确切位置?
-
您应该分析您的自定义代码。看起来你正在强迫你的 ListView 过于频繁地重新布局,从而导致调用 getView()。
-
@RomainGuy 你知道是什么原因造成的吗?
-
用 DDMS/traceview 分析你的代码,你会发现:)
标签: android performance listview scrollview horizontalscrollview