ListView刷新的版本间差异

用最新版本系统的手机开发软件,放到低版本上会遇到一些奇怪的问题。俺参照着系统提供的可排序列表(com.android.music.TouchInterceptor网上基本上都是抄这个的)自己写了一个可排序列表。由于希望添加其他的手势相应和动画,没有直接用系统的那个,自己写了。所以也会遇到这些奇怪的问题。

  • View.invalidate()刷新页面在4.0之前是需要手动调用的,比如做offsetLeftAndRight()等布局的改变。在4.0以后就会被自动调用。
  • AbsListView.invalidateViews()。这个方法最可恨。在4.0之后调用它时页面上的子views的前后顺序是不变的;而在4.0之前,系统会把View都回收,然后从回收站取出根据新的数据画新Views添加到页面上。根据打出的hashcode判断,回收用的是栈存储,因为刷新之后View都是逆序的。o(︶︿︶)o 唉

你可能感兴趣的:(ListView刷新的版本间差异)