3

我在我的應用程序中有兩個片段。 fA和fb。 fA有一個工具欄,一個選項卡布局和一個viewpager。 fB有一個textview和一個圖像視圖。當我在任何尋呼機上點擊fA中的某個按鈕時,它會打開fB並顯示一些帶有文本的圖像。它打開一切正常,但當我按回來回到我的第一個片段,我失去了我的標籤佈局。選項卡的位置存在,但沒有指示符或標題。有人可以幫忙嗎?爲什麼改變片段隱藏我的tablayout(android)?

我的法的xml:

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:clipToPadding="false" 
    android:fitsSystemWindows="true"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@color/primary" 
     android:clipToPadding="false" 
     android:elevation="4dp" /> 

    <android.support.design.widget.TabLayout 
     android:id="@+id/tab_layout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="@color/primary" 
     android:clipToPadding="false" 
     android:elevation="4dp" 
     android:paddingEnd="0dp" 
     android:paddingStart="48dp" 
     android:layout_marginTop="56dp" 
     android:scrollbars="horizontal" 
     app:tabGravity="center" 
     app:tabIndicatorColor="@android:color/white" 
     app:tabMode="scrollable" 
     app:tabTextColor="@color/primary_text" /> 

    <android.support.v4.view.ViewPager 
     android:id="@+id/viewPager" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:clipToPadding="false" /> 

</FrameLayout> 

和我的課:

@Nullable 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     return inflater.inflate(R.layout.tab_fragment, container, false); 
    } 

    @Override 
    public void onViewCreated(View view, Bundle savedInstanceState) { 
     super.onViewCreated(view, savedInstanceState); 

     titles = getTitles(); 

     MainActivity parent = (MainActivity) getActivity(); 
     parent.setToolbar((Toolbar) view.findViewById(R.id.toolbar)); 

     viewPager = (ViewPager) view.findViewById(R.id.viewPager); 
     stateListener = parent.getViewPagerStateListenerInstance(); 
     viewPager.setAdapter(new PagerAdapter(getChildFragmentManager())); 
     viewPager.addOnPageChangeListener(stateListener); 

     TabLayout tabLayout = (TabLayout) view.findViewById(R.id.tab_layout); 
     tabLayout.setupWithViewPager(viewPager); 
     parent.setUpTabLayout(tabLayout); 
    } 

    @Override 
    public void onDestroy() { 
     super.onDestroy(); 
     viewPager.removeOnPageChangeListener(stateListener); 
    } 

我的工具欄和我的標籤佈局是在片段將被替換。

任何幫助表示讚賞。 謝謝

+0

的任何運氣固定的問題? – Orest

+0

沒有..沒有..所以永遠..我結束了一個新的活動 –

+0

其實我已經修復了這個問題 – Orest

回答

2

請使用下面的代碼。它的工作對我來說

viewPager.postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      setupWithViewPager(viewPager) 
     } 
    }, 1); 

我做的每一次這樣的onCreateView片段

+0

我知道這是骯髒的黑客,但現在解決了我的問題 – Orest