【问题标题】:Android: ListView in HorizontalScrollView performance issuesAndroid:Horizo​​ntalScrollView 中的 ListView 性能问题
【发布时间】:2011-10-06 23:21:10
【问题描述】:

我需要在我的应用程序中水平和垂直滚动某些数据。我已经覆盖了HorizontalScrollView,并允许它使用Adapter 来填充它的数据。它的行为与水平 ListView 的行为非常相似,只是我没有进行任何视图回收。我的自定义HorizontalScrollView 中的每个项目都是ListView,其项目也填充有AdapterListView 中的每一项都是一个复杂的视图。

我可以水平和垂直滚动,只是它的性能有点笨拙。适配器中用于填充自定义HorizontalScrollView 的getView() 方法仅在第一次在视图上设置Adapter 时调用。但是,我注意到在HorizontalScrollView 中的 ListViews 不断调用 getView()。我想知道这是性能问题吗?

This question 指出了一个与在HorizontalScrollView 内部使用ListView 有关的假定文档错误,但在垂直滚动ScrollView 文档的文档中没有给出相同的警告。

如果我将 ScrollViews 放在 Horizo​​ntalScrollView 中会不会出现性能问题?

【问题讨论】:

  • 您是否对方法进行了分析以查看性能问题的确切位置?
  • 您应该分析您的自定义代码。看起来你正在强迫你的 ListView 过于频繁地重新布局,从而导致调用 getView()。
  • @RomainGuy 你知道是什么原因造成的吗?
  • 用 DDMS/traceview 分析你的代码,你会发现:)

标签: android performance listview scrollview horizontalscrollview


【解决方案1】:

ListView 提供layout_height 的下降值就可以了。未设置高度会导致ListView 继续测量、调用 getView 等。

【讨论】:

  • 这让我快疯了!然而对我来说,设置layout_height 和覆盖onInterceptTouchEvent 的组合就成功了
猜你喜欢
  • 1970-01-01
  • 2011-07-08
  • 1970-01-01
  • 2016-06-02
  • 2020-08-27
  • 2016-05-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多