0

我有一個使用FragmentStatePagerAdapter的Viewpager。每個頁面都是一個片段。我的頁面包含一個默認可見的線性佈局(llTags)。Android ViewPager適配器修改其他頁面

如果用戶點擊一個頁面(片段的主要佈局),線性佈局必須是不可見的(工作),但其他線性佈局(其他頁面中的標籤)也需要更改。

如果我點擊,linearlayouts的可見性已更改關閉所有頁面exept上一個和下一個。 這是因爲適配器的getItem不會再次調用下一個/上一個項目。 如何通知這些頁面。

ps:我有一個newInstance方法和一個公共的void setTagslayoutVisible(boolean)來改變適配器的可見性。

+0

我們可以看到一些代碼嗎? –

+0

適配器:http://pastebin.com/RGPkJgCV片段頁面:http://pastebin.com/UTDADYZx我知道我需要更改捆綁中的數據(現在這樣做) –

回答

0

下一個和上一個已經加載,適配器不會調用創建。

快速嘗試此操作,在您的適配器獲取函數中,如果您的片段已被加載,它將返回這些對象。所以只需添加這樣的事情

if(myMap.containsKey(position)) 
{ 
     LiveStreamFullScreenFragment lfsf = (LiveStreamFullScreenFragment) myMap.get(position)); 
     lfsf.setShowTags(mShowTags); 
     return lfsf; 
} else 
{ 

,並在你的片段類

public void setShowTags(boolean showtags) 
{ 
    mShowTags = showtags; 
    if(!mShowTags) 
    { 
     llLiveStreamTags.setVisibility(View.GONE); 
    } 
} 

希望這有助於和享受你的工作。

+0

Tnx但不起作用。我用另一種方式固定它。使用我的片段的構造函數而不是newInstance,併爲我的索引設置一個靜態int。 –

+0

只要它有效並且您分享您的經驗,您一定會受到歡迎。 –

相關問題