我重複使用相同的ListView
導航數據,同時更新基於用戶點擊行的ListView
數據。到目前爲止,我在整個活動中一直使用相同的行View
,但在用戶單擊一行後,我想更改爲的所有行的不同行佈局。我可以清除ListView中的所有視圖,以便它們不會通過convertView進行回收嗎?
更具體地說,ListView
包含使用layout1
的行,並且用戶單擊一行。 ListView的數組適配器隨後獲取一組新的數據,所有行現在都使用layout2
。
而不是創建點擊或惹setTag
醜陋之後一個新的ListView
,我只是想清除所有的,它們通過getView
的convertView
發送的緩存行的意見。我仍然想要回收layout2
的意見。
我可以這樣做,還是我必須「咬住子彈?」
爲什麼不爲listview調用invalidate? – logcat 2012-08-01 14:05:19
@tabbykitten我認爲這隻會刷新ListView,並且可能仍然會回收現有的視圖。但我相信我確實找到了[答案](http://stackoverflow.com/a/11761180/403455)。 – 2012-08-01 14:15:13
更優化的解決方案可能是構建兩個適配器並切換它們,而不是自行切換rowviews。 – edthethird 2012-08-01 15:56:48