我是Android dev和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>
答案 0 :(得分:4)
你的问题是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填写标签内容。
答案 1 :(得分:0)
尝试android:width =“match_parent”