似乎之前討論過刷新問題,但沒有解決方案爲我工作。使用FragmentStatePagerAdapter時刷新片段視圖
我在做什麼: 我正在使用FragmentStatePagerAdapter。適配器的每個位置都包含一個具有線性佈局的片段,該佈局具有象棋般的外觀,每個單元由一個CheckedTextView表示。
還有一個應監聽點擊並刪除單元格上的先前選擇並進行新選擇的偵聽器。
請告訴我工作: 每個片段的所有數據/默認狀態(而片段在列表加載計算)
正確加載當我點擊從保存的細胞列表中的所有狀態的細胞被正確提取,我可以在調試時看到代碼中的狀態改變。同時,我爲CheckedTextView分配了一個代表單元格的新狀態。這是設置,如:
的問題: 即使值存儲和分配正確的觀點不能被刷新,沒有更新的視圖中的單元格的值。
提示我已經試過未工作: 1.呼叫adapter.notifyDataSetChanged: 可謂是同時使用FragmentStatePagerAdapter只有當我們已經覆蓋:
@Override
public int getItemPosition(Object object){
return POSITION_NONE;
}
2.添加覆蓋DestroyItem的方法,並將片段添加到getItem上的Map上:
這是不合適的,因爲我正在處理FragmentStatePagerAdapter,所以使用這個pagerAdapter的全部目的將會消失。
3.調用無效: 這是不適合這種情況,我需要實時刷新。
4. instantiateItem()中的setTag()方法: 我不認爲這在這種情況下是合適的。
參考線: Refresh images on FragmentStatePagerAdapter on resuming activity
ViewPager PagerAdapter not updating the View
notifyDataSetChanged fails to update ListView
我試圖說明我的問題儘可能講清楚,如果有人需要更多的澄清,不要問。
緊急答覆將高度讚賞,
乾杯
****更新*****
我使用,而不是默認的ViewPager ViewPagerIndicator。
在你的設置中,每個片段代表什麼?它一次只能在屏幕上顯示一個片段嗎?你添加的代碼在哪裏?它在片段類中嗎?最後,什麼是GridRow? – 2013-03-04 09:48:22
嗨謝里夫,每個片段代表一個國際象棋棋盤。我有一個調用容器片段的活動,這個containerFragment有一個viewpager,它具有FragmentStatePagerAadaper集合。每個適配器項目都是一個片段,並且在onCreatView的這個片段中,每個棋子視圖都被初始化。此外,單元的監聽器位於同一個片段中,我檢查當前狀態和新狀態並相應地更改狀態。 GridRow只是一行代表單元格的checkedTextview。我希望這回答你所有的問題,任何提示....? – AliR 2013-03-05 00:35:07
事實上,一切都發生在你的片段內意味着所有這些麻煩都不需要。你確定你的選擇器(背景)是正確的嗎?你可以顯示它和你的XML每個單元格。通常情況下,當您試圖更新viewpager中的特定片段時,視圖不會更新。 – 2013-03-05 08:59:55