2010-11-21 67 views
0

我有一個列表視圖,可以根據內部狀態顯示項目(其中 包含項目和'已查看'項目)。我需要能夠在 兩種狀態之間切換,我使用一個簡單的按鈕來改變適配器的狀態,然後適配器再調用notifyDatasetChanged()。 我的數據並得到更新,但我面臨兩個問題:在適配器數據更改後重置ListView

  1. 如果在以前的模式列表中被部分滾動,它在該州停留 後,我改變了數據集(如果我有一半的路down 我會在新的數據集中減半,這不是我想要的 行爲,但是我不知道如何手動滾動列表 到位置0.任何想法?(setSelected不是完全是一個解決方案,因爲我不想要任何選擇我想保持觸摸模式)
  2. 在我的列表中查看每個項目都有一個圖像是從 網絡中提取的所以它被帶來使用我的網絡經理,我發送 圖像請求只有當我在這個屏幕上第一次,或者如果 滾動狀態是idlle,我不想從 開始加載圖像getView方法如果我扔了屏幕,它可能會加載很多不必要的圖像。但是,在調用notifyDatasetChanged()時,不會調用 滾動偵聽器方法。我解決了這一個通過使用 notifyDatasetInvalidated即使我的數據不是空的,有沒有一個 更好的方式來解決這個問題?

回答

0

關於#1這是我的錯誤我沒有閱讀通過顯然的文件,如果我目前在觸摸模式沒有選擇將作出,所以工作是由setSelectedPosition()完​​成。

關於#2我還不確定notifyDatasetInvalidated是確保onScroll方法將被調用的解決方案。