Линейная гравитация? - PullRequest
       4

Линейная гравитация?

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

У меня проблема с линейным расположением.Я думаю, что что-то странное. Все они имеют одинаковый макет, но кнопка «Назад» перемещает связанный значок, но я хочу разместить кнопку «Назад» с левой стороны, а кнопка «btn_header_what_search_user» - направо на сайт. Но они перемещают связанный значок (значок в центре). Почему?и как мне вернуть кнопку на левой стороне.

enter image description here

мой код: `

<LinearLayout android:layout_height="44dip"
              android:layout_width="320dip"
              android:background="@drawable/header_320_44dip">
    <ImageView
            android:layout_width="121dip"
            android:layout_height="32dip"
            android:layout_gravity="center"
            android:layout_marginLeft="90dip"
            android:background="@drawable/icon">

    </ImageView>

    <ImageView
            android:layout_width="52dip"
            android:layout_height="32dip"
            android:layout_gravity="left"
            android:background="@drawable/btn_back_52x32">

    </ImageView>


    <ImageButton
            android:layout_height="34dip"
            android:layout_width="64dip"
            android:id="@+id/btn_header_what_search_user"
            android:layout_marginLeft="0dip"
            android:background="@drawable/btn_nedit_nontext_64x34">
    </ImageButton>
</LinearLayout>

`

Ответы [ 3 ]

3 голосов
/ 28 февраля 2012

Вы должны использовать Относительный макет

<RelativeLayout android:layout_height="44dip"
              android:layout_width="320dip"
              android:background="@drawable/header_320_44dip">
    <ImageView
            android:layout_width="121dip"
            android:layout_height="32dip"
           android:layout_centerInParent="true"
            android:layout_marginLeft="90dip"
            android:background="@drawable/icon">

    </ImageView>

    <ImageView
            android:layout_width="52dip"
            android:layout_height="32dip"
            android:layout_alignParentLeft="true"
            android:background="@drawable/btn_back_52x32">

    </ImageView>


    <ImageButton
            android:layout_height="34dip"
            android:layout_width="64dip"
            android:id="@+id/btn_header_what_search_user"
            android:layout_marginLeft="0dip"
android:layout_alignParentright="true"
            android:background="@drawable/btn_nedit_nontext_64x34">
    </ImageButton>
</RelativeLayout>
2 голосов
/ 28 февраля 2012

LinearLayout плохо работает с гравитацией вдоль своего основного направления (то есть горизонтальный LinearLayout не поддерживает левую, правую или center_horizontal и вертикальную вершину, нижнюю или center_vertical).
Вместо этого вы можете попробовать RelativeLayout и использовать атрибуты layout_alignParentLeft / layout_alignParentRight (или любые другие доступные), чтобы получить правильный результат.

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

Другим решением может быть использование весов макета.Установите общий вес 3, а затем установите вес 1 для каждого из представлений изображения.Таким образом, макет разделен на 3 части, и вы сможете настроить гравитацию для каждой части.Примерно так:

<LinearLayout
   ...
   android:weightSum="3" >

   <ImageView
       ...
       android:layout_width="0dp"
       android:layout_weight="1" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...