0

我的活動中有一個ViewPager,其中包含5個片段,我在工具欄上固定了一個用作過濾器的菜單,單擊菜單上的 項目我需要更改所有視圖片段,在ViewPager中重新加載所有片段Android

我用來清除ViewPager所有的片段和連接片段的新實例,這將顯示正確的意見,但同時創造我曾經在屏幕上顯示一個進度條新 意見,但它沒有顯示爲 我們設置,它會在所有視圖發生更改後調用。

我懷疑是事情是用新的實例替換片段改變這一切的觀點這是正確的方法或有任何其他方式在片段中相應的數據更改爲我的上下文

謝謝


編輯:
結算適配器如果要刷新所有喲創建新的視圖

viewPagerAdapter.fragmentArrayList.clear(); 
viewPagerAdapter.fragmentTitle.clear(); 
viewPagerAdapter.notifyDataSetChanged(); 
+0

你可以把代碼更清晰嗎? –

回答

0

你的碎片一次你可以setAdapterViewPager再次比它會刷新你的所有片段,像這樣;

mViewPager.setAdapter(yourAdapter); 
    //If you want set current postion for adapter 
    mViewPager.setCurrentItem(theCurrentPage); 
+0

是啊!它已經工作,但有一些卡在做這個 –

+0

我曾經在創建視圖時在屏幕上顯示進度條,但它卡住了 –

+0

再次設置您的適配器之前顯示您的進度條 –

0

你理所當然地懷疑是否破壞並重新創建所有的片段是一個很好的方法,如果你只想要過濾您ViewPager正顯示出片段的列表。這等於不必要地浪費了大量資源。

取而代之,您要麼操縱您的片段列表(和片段標題列表?),然後撥打notifyDataSetChanged()或實施Filter,如解釋here

所以你去:

viewPagerAdapter.fragmentArrayList.remove(index); 

viewPagerAdapter.fragmentArrayList.remove(fragment); 

,然後你說:

viewPagerAdapter.notifyDataSetChanged(); 

關於進度條,凡在你的XML佈局什麼位置?在查看傳呼機內?然後移到外面。別的地方?然後向我們展示您的XML和創建並顯示它的代碼。

+0

是啊!我做了同樣的工作,我需要清除所有的片段,所以我使用clear()。並且它是進度對話框而不是進度條(在活動中) –

+0

你是說與你的問題的標題相反,暗示你的問題不是是否以及如何一次重新加載所有片段,而是如何顯示進度對話框?然後給我們更多的代碼! – kalabalik

相關問題