Как создать растягиваемую панель навигации на Android - PullRequest
0 голосов
/ 02 августа 2011

Я пытаюсь создать панель навигации с 5 кнопками в верхней части экрана. Я бы хотел, чтобы размер кнопок оставался одинаковым на экранах разных размеров и растягивался на ширину экрана.

Наиболее подходящим решением, которое я нашел, является представление таблицы. Проблема в том, что я не могу найти способ иметь только одну строку таблицы и продолжить оставшуюся часть экрана с линейным представлением.

В следующем примере текст EditText отображается в нижней части экрана, а не сразу после панели навигации.

Есть идеи?

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

       <TableRow android:layout_height="wrap_content" android:layout_width="fill_parent" android:layout_weight="1" android:id="@+id/tableRow2">
           <Button android:layout_width="0dip" android:text="1" android:layout_weight="1" android:layout_height="wrap_content" android:id="@+id/n1"></Button>
           <Button android:layout_width="0dip" android:text="2" android:layout_weight="1" android:layout_height="wrap_content" android:id="@+id/n2"></Button>
           <Button android:layout_width="0dip" android:text="3" android:layout_weight="1" android:layout_height="wrap_content" android:id="@+id/n3"></Button>
           <Button android:layout_width="0dip" android:text="4" android:layout_weight="1" android:layout_height="wrap_content" android:id="@+id/n4"></Button>
           <Button android:layout_width="0dip" android:text="5" android:layout_weight="1" android:layout_height="wrap_content" android:id="@+id/n5" android:layout_margin="0"></Button>
       </TableRow>
       <EditText android:id="@+id/editText1" android:layout_height="wrap_content" android:layout_width="fill_parent" android:inputType="textPostalAddress">
           <requestFocus></requestFocus>
       </EditText>
</LinearLayout>

Ответы [ 2 ]

0 голосов
/ 02 августа 2011

для такого типа макета вы должны использовать Relative Layout, и он будет обрабатывать сам размер экрана.

0 голосов
/ 02 августа 2011

Нет необходимости в TableLayout

Добавить LinearLayout

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

       <LinearLayout
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    >
           <Button android:layout_width="0dip" android:text="1" android:layout_weight="1" android:layout_height="wrap_content" android:id="@+id/n1"></Button>
           <Button android:layout_width="0dip" android:text="2" android:layout_weight="1" android:layout_height="wrap_content" android:id="@+id/n2"></Button>
           <Button android:layout_width="0dip" android:text="3" android:layout_weight="1" android:layout_height="wrap_content" android:id="@+id/n3"></Button>
           <Button android:layout_width="0dip" android:text="4" android:layout_weight="1" android:layout_height="wrap_content" android:id="@+id/n4"></Button>
           <Button android:layout_width="0dip" android:text="5" android:layout_weight="1" android:layout_height="wrap_content" android:id="@+id/n5" android:layout_margin="0"></Button>
       </LinearLayout >
       <EditText android:id="@+id/editText1" android:layout_height="wrap_content" android:layout_width="fill_parent" android:inputType="textPostalAddress">
           <requestFocus></requestFocus>
       </EditText>
</LinearLayout>
...