Android Tab Widget не будет заполнять ширину экрана - PullRequest
0 голосов
/ 10 февраля 2012

Я совершенно новичок в разработке 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>

Ответы [ 2 ]

4 голосов
/ 10 февраля 2012

Ваша проблема в том, что 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>

Затем следуйте учебнику HelloTabWidget , чтобы заполнить вкладки содержанием.

0 голосов
/ 10 февраля 2012

Попробуйте android: width = "match_parent"

...