FragmentTabHost选项卡应该是不透明的透明

时间:2015-04-13 01:38:02

标签: android android-fragments fragment-tab-host

我最近将我的应用从所有活动更改为所有片段。作为更改的一部分,我开始使用片段标签主机,这些主机一直表现得很奇怪。

出于某种原因,我的标签是透明的,并在标签按钮下方显示内容,但所有教程都将其显示为不透明的内容。我没有做过任何特别的事情,需要弄清楚如何使它们按预期工作。应用程序"风格"是Theme.AppCompat.Light,如果这有任何区别。

这是目前在设备上的显示方式:https://dl.dropboxusercontent.com/u/70446113/MLP/2015-04-13_10-55-31.png

这是主机片段

    @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setHasOptionsMenu(true);

    rootView = inflater.inflate(R.layout.fragment_search, container, false);

    mTabHost = (FragmentTabHost) rootView.findViewById(android.R.id.tabhost);
    mTabHost.setup(getActivity(), getChildFragmentManager(), R.id.realtabcontent);

    mTabHost.addTab(mTabHost.newTabSpec(basicTag).setIndicator("Basic"), BasicSearchFragment.class, null);
    mTabHost.addTab(mTabHost.newTabSpec(advancedTag).setIndicator("Advanced"), AdvancedSearchFragment.class, null);

    return rootView;
}

片段布局。内容布局是一个包含许多按钮的线性布局。

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingLeft="8dp"
    android:paddingRight="8dp"
    android:paddingTop="8dp" >

    <android.support.v4.app.FragmentTabHost
        android:id="@android:id/tabhost"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <LinearLayout
            android:id="@+id/realtabcontent"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="vertical" >
        </LinearLayout>
    </android.support.v4.app.FragmentTabHost>

</LinearLayout>

非常感谢任何帮助

1 个答案:

答案 0 :(得分:0)

您需要在标签主机中添加TabWidget。查看我在您的布局中所做的更改:

<android.support.v4.app.FragmentTabHost
    android:id="@android:id/tabhost"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

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

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

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="0dp"
            android:layout_height="0dp" />

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

有关详情,请参阅此Question

希望它会有所帮助。