Android FragmentTabHost布局定位

时间:2014-06-23 21:57:57

标签: android android-layout tabs

我正在学习Android开发,我正在尝试在片段中创建一个标签界面,标签位于底部。我看过很多关于如何使用RelativeLayout将标签配置在底部的网页(like this one),但我无法在屏幕上找到正确的内容。

标签的FrameLayout占据了标签界面的所有空间,标签无法显示:

tabs not being shown

我使用的代码是:

        <android.support.v13.app.FragmentTabHost
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@android:id/tabhost"
            android:layout_marginRight="5dp"
            android:layout_alignTop="@+id/ibRight"
            android:layout_alignBottom="@+id/ibRight"
            android:layout_toLeftOf="@+id/ibRight"
            android:layout_alignLeft="@+id/ibTop">

            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent">

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

                <FrameLayout
                    android:id="@android:id/tabcontent"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content" />
            </RelativeLayout>
        </android.support.v13.app.FragmentTabHost>

正如快速测试一样,我将FrameLayout的宽度和高度调整为固定(500dp和200dp),这就是我得到的:

Tab with tabs

所以这样我就可以看到所有的东西都在那里,但是我不能让它显示正确,而不是使用固定的宽度和高度数字。而Android Studio有一个bug会导致呈现FragmentTabLayout的空引用这一事实使事情变得更难,因为我无法实时测试选项。

我很感激,如果有人可以帮助我,因为我刚接触Android,我不太清楚如何完成这项工作。

1 个答案:

答案 0 :(得分:-1)

使用以下代码:

        <android.support.v13.app.FragmentTabHost
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@android:id/tabhost"
            android:layout_marginRight="5dp"
            android:layout_alignTop="@+id/ibBannerRight"
            android:layout_alignBottom="@+id/ibBannerRight"
            android:layout_toLeftOf="@+id/ibBannerRight"
            android:layout_alignLeft="@+id/ibBannerTop">

            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent">

                <TabWidget
                    android:id="@android:id/tabs"
                    android:layout_alignParentBottom="true"
                    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"
                    android:layout_above="@android:id/tabs"/>
            </RelativeLayout>
        </android.support.v13.app.FragmentTabHost>

秘密成分是android:layout_above="@android:id/tabs"

现在一切都很好:

enter image description here

enter image description here