【问题标题】:Android Tab Widget won't fill the width of the screenAndroid Tab Widget不会填满屏幕的宽度
【发布时间】:2012-02-10 16:10:07
【问题描述】:

我对 Android 开发和 XML 完全陌生。我要做的是在屏幕底部创建 4 个选项卡,并让这些选项卡填充屏幕的宽度。我已经能够在底部创建 4 个选项卡,但即使宽度都设置为“fill_parent”,选项卡小部件也不会填充宽度。但是,在 Eclipse 的图形布局中,它显示了填充宽度的小部件。任何人都可以帮忙吗?代码如下。谢谢。

<?xml version="1.0" encoding="utf-8"?>
<!-- Dublin Bus App -->

<TabHost   
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/tab_host">

    <TabWidget
        android:id="@android:id/tabs"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom"/>

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

        <LinearLayout
            android:id="@+id/tab1"
            android:layout_width="fill_parent"
            android:layout_height="match_parent"
            android:orientation="vertical"
            android:padding="5px" >

            <TextView 
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" 
                android:text="This is the first tab" 
                android:textSize="25dp"
                android:layout_gravity="center"
                android:textStyle="bold"/>
        </LinearLayout>

        <LinearLayout
            android:id="@+id/tab2"
            android:orientation="vertical"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:padding="5px" > 

            <TextView 
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" 
                android:text="This is the second tab" 
                android:layout_gravity="center"
                android:textStyle="bold" 
                android:textSize="25dp"/>
            </LinearLayout>

        <LinearLayout
            android:id="@+id/tab3"
            android:orientation="vertical"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:padding="5px"> 

            <TextView 
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" 
                android:text="This is the third tab" 
                android:layout_gravity="center"
                android:textStyle="bold" 
                android:textSize="25dp"/>
        </LinearLayout>

        <LinearLayout
            android:id="@+id/tab4"
            android:orientation="vertical"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:padding="5px"> 

            <TextView 
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" 
                android:text="This is the fourth tab" 
                android:layout_gravity="center"
                android:textStyle="bold" 
                android:textSize="25dp"/>
        </LinearLayout>             
    </FrameLayout>
</TabHost>

【问题讨论】:

  • 你有什么解决方案来做同样的事情吗?我可以知道你使用的是哪个版本的android。谢谢

标签: android tabs widget host


【解决方案1】:

您的问题是 TabHost 是从 FrameLayout 派生的,正如描述所述,它仅用于保存一个元素,而您正在用两个元素填充它:TabWidget 和 FrameLayout。

试试这个:(请注意我是如何删除 FrameLayout 的 - 尝试像这样填写标签是个坏主意)

<?xml version="1.0" encoding="utf-8"?>
<!-- Dublin Bus App -->

<TabHost   
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" 
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:id="@+id/tab_host">
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom"/>

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:padding="5dp" />
    </LinearLayout>
</TabHost>

然后关注the HelloTabWidget tutorial,用内容填充标签。

【讨论】:

    【解决方案2】:

    试试 android:width="match_parent"

    【讨论】:

    • 您好,android:layout_width="match_parent" 会导致同样的问题
    猜你喜欢
    • 2012-04-02
    • 1970-01-01
    • 1970-01-01
    • 2016-02-10
    • 2021-03-21
    • 2020-07-20
    • 2013-05-01
    • 1970-01-01
    • 2012-11-30
    相关资源
    最近更新 更多