LinearLayout мешает другим объектам? - PullRequest
1 голос
/ 04 марта 2012

У меня есть LinearLayout, который имеет 3 макета вверху.(Таким образом, серая полоса сверху разделена на 3 части). На каждой будет кнопка.У меня только 2 с кнопками в них на данный момент.

Вот как это должно выглядеть (представьте себе еще одну кнопку в правом верхнем углу). Верхняя панель с кнопками в ней имеет высоту 60dp:

enter image description here

И я хочу иметь LinearLayout под ним.Но когда я добавляю один и устанавливаю его на

android:layout_marginTop="60dp"

Думая, что он просто установится под верхней серой полосой, он переместит средний макет.Третий макет полностью за пределами экрана.

Примерно так:

enter image description here

Но я хочу, чтобы это выглядело так (извините за отсутствие MSНавыки рисования):

enter image description here

Так как мне установить его так, чтобы LinearLayout внизу не мешал расположенным над ним макетам?

XML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background"
android:baselineAligned="true"
android:orientation="horizontal" >

<LinearLayout
    android:id="@+id/linearLayout1"
    android:layout_width="120dp"
    android:layout_height="60dp"
    android:background="@drawable/topbar"
    android:orientation="vertical" >

    <ImageButton
        android:id="@+id/imageButton2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/camerabuttonmew"
        android:background="@null"
        android:layout_margin="5dp" />

</LinearLayout>



<LinearLayout
    android:id="@+id/LinearLayout02"
    android:layout_width="120dp"
    android:layout_height="60dp"
    android:background="@drawable/topbar"
    android:orientation="vertical" >


    <ImageButton
        android:id="@+id/imageButton1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:background="@null"
        android:src="@drawable/homebuttonnew"
        android:layout_margin="5dp" />

</LinearLayout>

<LinearLayout
    android:id="@+id/linearLayout2"
    android:layout_width="match_parent"
    android:layout_height="60dp"
    android:background="@drawable/topbar" >
</LinearLayout>

<LinearLayout
    android:id="@+id/linearLayout3"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:layout_marginTop="60dp" >
</LinearLayout>

Ответы [ 2 ]

1 голос
/ 04 марта 2012

Рассматривали ли вы использование Относительного макета с изображениями вверху и LinearLayout под ним. Полезное руководство, http://www.higherpass.com/Android/Tutorials/Exploring-Android-Linearlayout-And-Relativelayout/

0 голосов
/ 04 марта 2012

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

  <LinearLayout
  android:id="@+id/outer_container"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:orientation="vertical">
    <LinearLayout
        android:id="@+id/buttons"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
    ...
    </LinearLayout>
    <FrameLayout
        android:id="@+id/everything_else"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">
    ...
    </FrameLayout>
 </LinearLayout>

Все остальное макет не обязательно должен быть макетом фрейма, я просто использую его как заполнитель.

...