2013-11-24 78 views
3

我有3個選項卡,我使用fragments。當第一次調用activity時,所有3個片段都會生成。我在fragment1上有一些複選框,當我在fragment1上執行一些操作並刷卡時,我想再次撥打fragment3oncreateView? 每當我刷卡或點擊我想要oncreateview再次調用的標籤,因爲我動態生成fragment3用戶界面。 如果我回到fragment1然後回到fragment3,我看到了變化。同時滑動標籤,oncreateView的片段不被調用,如何每次調用oncreateView

一個)我的活性延伸FragmentActivity

public class AddProgramActivity extends FragmentActivity implements 
ActionBar.TabListener 

b)中適配器類延伸FragmentPagerAdapter

c)和我的片段類延伸Fragment

請建議我如何強制我的片段3 oncreateView每次我滑動或點擊標籤或每次刷卡時如何刷新。

回答

1

我有和你一樣的問題。我的情況是試圖設置標誌以禁用ActionBar按鈕,並在每次創建視圖時調用invalidateOptionsMenu

我在操作欄上有3個選項卡(對應於3個片段)。如果我從標籤1選擇標籤2並返回標籤1,則不調用標籤1的onCreateView,但如果我從標籤1選擇標籤3並返回標籤1,則標籤1的onCreateView稱爲

我無法找到任何解決方案。我的解決方法是設置回標誌和功能TabListener

出頭的onTabSelected這樣

ActionBar.TabListener tabListener = new ActionBar.TabListener() { 
    public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) { 
     pager.setCurrentItem(tab.getPosition()); 

     MainFragmentActivity.disableBookmarkFlag = MainFragmentActivity.disableShareFlag = true; 
     invalidateOptionsMenu(); 
    } 

    ..... 
} 

希望這有助於

+0

這篇作品叫invalidateOptionsMenu?我嘗試使用OnResume方法,雖然它似乎沒有按預期工作。這是最好的解決方法嗎?這似乎有點過分的東西,應該從根本上容易 –

+0

是@RandyFreak,它適用於我,雖然我仍然環顧四周 –

相關問題