0

我在抽屜裏創建了一個TabHost。這意味着我創建了3個Fragmentxml個文件:ExhibitorFragment,TabInternationalFragmentTabLocalFragment。現在的問題是,我看不到我的tabwidget在Toolbar下,即使它在任何兩個片段中顯示設計xmlTabwidget在android studio的工具欄/導航欄下不可見

下面是我ExhibitorFragment.java代碼:

public class ExhibitorFragment extends Fragment{ 


public ExhibitorFragment() { 
    // Required empty public constructor 
} 

private FragmentTabHost mTabHost; 
@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
         Bundle savedInstanceState) { 
    // Inflate the layout for this fragment 

    mTabHost = new FragmentTabHost(getActivity()); 
    mTabHost.setup(getActivity(), getChildFragmentManager(), R.layout.fragment_exhibitor); 

    Bundle arg1 = new Bundle(); 
    arg1.putInt("Arg for Frag1", 1); 
    mTabHost.addTab(mTabHost.newTabSpec("Tab1").setIndicator("Frag Tab1"), 
      TabInternationalFragment.class, arg1); 

    Bundle arg2 = new Bundle(); 
    arg2.putInt("Arg for Frag2", 2); 
    mTabHost.addTab(mTabHost.newTabSpec("Tab2").setIndicator("Frag Tab2"), 
      TabLocalFragment.class, arg2); 


    return mTabHost; 
} 

@Override 
public void onDestroyView() { 
    super.onDestroyView(); 
    mTabHost = null; 
} 

} 

fragment_exhibitor.xml:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.example.guitarista.citem.Example"> 

    <TabHost android:id="@android:id/tabhost" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <LinearLayout 
      android:orientation="vertical" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" > 

      <TabWidget 
       android:id="@android:id/tabs" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 

       /> 

      <FrameLayout 
       android:id="@android:id/tabcontent" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 

       > 

       <FrameLayout 
        android:id="@+id/International" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        /> 

       <FrameLayout 
        android:id="@+id/Local" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        /> 


      </FrameLayout> 
     </LinearLayout> 
    </TabHost> 

</FrameLayout> 

TabInternationalFragmentTabLocalFragment設置爲默認爲他們尊敬的xml創建相同的時(fragment_tab_international,fragment_tab_local)。

回答

0

Java代碼是正確的嘗試XML文件更改爲這種格式

<android.support.v4.app.FragmentTabHost 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/tabhost" 
    android:layout_marginTop="55dp" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical" > 

     <TabWidget 
       android:id="@android:id/tabs" 
       android:layout_width="match_parent" 
       android:layout_height="45dp"/> 

     <FrameLayout 
      android:id="@android:id/tabcontent" 
      android:layout_width="fill_parent" 
      android:layout_height="0dp" 
      android:layout_weight="1" /> 
    </LinearLayout> 
</android.support.v4.app.FragmentTabHost> 
+0

我有渲染問題。這是正常的嗎? – SovietSenpai

+0

是的,這是完全正常的....佈局將只在運行時可見 – qwertygamer

+0

仍然無法工作:( – SovietSenpai

0

USR這個代碼

<TabHost android:id="@android:id/tabhost" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <LinearLayout 
      android:orientation="vertical" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" > 

      <TabWidget 
       android:id="@android:id/tabs" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 

       /> 

      <FrameLayout 
       android:layout_below="@android:id/tabs" 
       android:id="@android:id/tabcontent" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 

       > 

       <FrameLayout 
        android:id="@+id/International" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        /> 

       <FrameLayout 
        android:id="@+id/Local" 
        android:layout_width="match_parent" 
        android:layout_height="match_parent" 
        /> 


      </FrameLayout> 
     </LinearLayout> 
    </TabHost> 

</FrameLayout> 
+0

這是什麼區別?我似乎無法 – SovietSenpai

+0

android:layout_below =「@ android:id/tabs」 –

0
FragmentTabHost mTabHost; 
mTabHost = (FragmentTabHost) findViewById(android.R.id.tabhost); 
mTabHost.setup(this, getSupportFragmentManager(), android.R.id.tabcontent); 

    mTabHost.addTab(mTabHost.newTabSpec("tab1").setIndicator("tab2"), 
      tab1.class,null); 

    mTabHost.addTab(mTabHost.newTabSpec("tab2") 
      .setIndicator("tab2"), tab2.class, null); 
+0

生病了試試吧.. – SovietSenpai

+0

還是沒有運氣的兄弟,可能很難翻譯一些代碼,因爲Im在片段中實現這些而不是MainActivity本身。 – SovietSenpai

+0

編譯並嘗試一下 compile'c​​om.android.support:design:24.2.1' compile'c​​om.android.support:support-v4:24.2.1' – qwertygamer