【问题标题】:Difference between ListView invalidate() vs invalidateViews()?ListView invalidate() 与 invalidateViews() 之间的区别?
【发布时间】:2015-11-11 20:00:56
【问题描述】:

ListView.invalidate() 和 ListView.invalidateViews() 有什么区别?

对我来说,单独的 invalidate() 不起作用。而 invalidateViews() 只是按照我想要的方式工作,即重绘列表项。

【问题讨论】:

    标签: android android-fragments android-listview android-view-invalidate


    【解决方案1】:

    根据Android网页View InvalidateListView.invalidate()会

    使整个视图无效。如果视图可见, onDraw(android.graphics.Canvas) 将被调用

    这将通过onDraw 事件重绘画布背景。这在外观/感觉发生变化时很有用。

    ListView.invalidateViews(),Android上声明AbsListView invalidateViews

    导致所有视图被重建和重绘。

    我认为这意味着它将“重建”与 ListView 关联的修改数据,并更新外观/感觉。但是,这也会更新 子视图,而且非常耗时。通常,当数据发生变化时,我会使用 BaseAdapter 的 notifyDataSetChanged()。

    总之,使用适合您需要的方法。

    【讨论】:

      猜你喜欢
      • 2012-03-19
      • 2012-04-05
      • 2015-02-09
      • 2019-04-09
      • 2014-10-30
      • 2021-12-07
      • 2016-02-09
      • 2016-05-14
      • 2016-10-11
      相关资源
      最近更新 更多