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 唉

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章