2013-07-04 20 views
0

後才解僱,我現在面臨的一個問題。點擊從內MergeAdapter項目的看法事件目前我在我的應用程序中使用<a href="https://github.com/commonsguy/cwac-merge" rel="nofollow noreferrer">cwac-merge</a>滾動

所以我有這個列表視圖不同的部分。第一個或靜態視圖添加到MergeAdapter。直接添加它們而不激活/停用它們。

然後我加入其他適配器我MergeAdapter和隱藏他們setActive()立竿見影。這些是異步填充的,但在listView.setAdapter(adapter)之前添加。所以,我這樣做是爲每個適配器:

  1. 適配器添加到MergeAdapteradapter.addAdapter(subAdapter)
  2. 隱藏它adapter.setActive(subAdapter, false)
  3. 當數據被取出,加上檢索到的項目到subAdapter,subAdapter.addItems(items)和然後顯示適配器adapter.setActive(subAdapter, true)

一切工作完美,我的看法看起來不錯,除了一件事。我在MergeAdapter的頂視圖中有幾個按鈕。點擊行爲是錯誤的。有時點擊事件只會在滾動ListView之後觸發。我注意到只有當我玩setActive()函數時纔會發生。如果我每撥打setActive()的電話,都不能複製該問題。 如果我點擊多次,然後滾動,點擊次數很多。

下面是一些截圖。靜態視圖是圖像和4個按鈕的視圖。然後,動態部分是後適配器(傳中,上次播放的和最佳歌曲)

更新: 我已經成功地(在某種程度上)通過激活他們每個人的呼叫後subAdapter.notifyDatasetChanged()修復它。它仍然很瑣碎,並且每次都不工作。

更新: 我想這應該由庫涵蓋鑑於:

注意,雖然,你可以修改基本適配器。所以, 例如,如果一個CursorAdapter添加到MergeAdapter,你 重新查詢()光標時,改變應該通過 MergeAdapter到任何適配器視圖的MergeAdapter連接得以體現。

top of the list bottom of the list

+0

創建重現該問題的示例項目,然後提供該示範代碼[文件存在問題(https://github.com/commonsguy/cwac-merge/issues)(和步驟來重現條件) ,以便我可以研究你的問題。 – CommonsWare

+0

好的,我會盡力做到這一點,謝謝! –

+0

該死的我不能在示例中重現它.- –

回答

0

的問題是實際上具體到我的項目。在內容被提取和填充的同時,我正在顯示一個包含隱藏內容ProgressBar的屏幕。我顯示內容的時刻和檢索數據時的內容碰撞。從技術上講,mergeadapter.setActive()命令在屏幕視圖上的setVisibility(VISIBLE)發生在糟糕的時間。

總之,美好的時光!由於@CommonsWare

相關問題