Линейный макет внутри TabHost показывает только один элемент - PullRequest
0 голосов
/ 26 апреля 2011

У меня есть этот файл макета в моем приложении для Android:

<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/tabhost"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">
        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_weight="1">
            <TextView 
                android:id="@+id/textview1"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent" 
                android:text="this is a tab" />
            <TextView 
                android:id="@+id/textview2"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent" 
                android:text="this is another tab" />
            <LinearLayout
                android:id="@+id/layoutSearch"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:orientation="vertical">
                <TextView
                    android:id="@+id/textview4"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent" 
                    android:text="Search here" />
                <EditText
                    android:id="@+id/editSearch"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content" />

            </LinearLayout>
        </FrameLayout>
        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="0"/>
    </LinearLayout>
</TabHost>

Моя проблема в том, что LinearLayout android:id="@+id/layoutSearch" показывает только один из элементов, которые он содержит (текстовое представление, в коде выше), если я удаляютекстовое представление, оно показывает EditText.

Как мне заставить его отображать оба (и более) элемента?

1 Ответ

1 голос
/ 26 апреля 2011

Там много лишнего макета, но похоже, что реальная проблема в том, что layoutSearch - это вертикальный LinearLayout с двумя дочерними элементами, но высота первого дочернего элемента установлена ​​на fill_parent, поэтому вы, естественно, никогда не увидите второгоодин.Попробуйте установить для его высоты значение 0px, но при этом значение layout_weight будет равно 1, и оно должно расшириться, чтобы занять все доступное пространство, не занятое EditText под ним.

...