Какой разумный способ сделать этот макет?

На изображении ниже желтый квадрат представляет RelativeLayout, который находится в моем общем макете.

Верх строка «статусное сообщение» - это ViewFlipper, который реагирует на ToggleButtons (A, B), которые пользователь может нажимать. Кнопки C, D и E выполняют другие функции, которые перезагружают весь вид. Наш клиент просит расположить кнопки A, B, C, D и E, как показано ниже. (Вертикальное выравнивание не так важно, как горизонтальное.)

ИЗМЕНИТЬ, чтобы сказать, что A, B, C, D и E - это изображения с углом наклона 20x20; они выравниваются в пределах ширины около 300 дип. Я хочу, чтобы кнопки сохранили свое соотношение сторон.

looking to make this layout

Я создал расширение LinearLayout, которое расширяет кнопки A и B (из XML-файла), а затем еще одно LinearLayout, которое расширяет кнопки C, D и E в другом XML-файле.

Кнопки A и B ( на самом деле являются ToggleButtons):

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:baselineAligned="true"
>
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
    >
        <ToggleButton
            android:id="@+id/A"
            android:textOn=""
            android:textOff=""
            android:background="@layout/A"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="60dp"
            android:layout_marginRight="30dp"
        />
        <ToggleButton
            android:id="@+id/B"
            android:textOn=""
            android:textOff=""
            android:background="@layout/B"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="30dp"
            android:layout_marginRight="30dp"
        />
    </LinearLayout>
</RelativeLayout>

Кнопки C, D, E xml файл:

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:baselineAligned="true"
>
    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
    >
        <ImageView 
            android:id="@+id/C"
            android:src="@drawable/C"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="30dp"
            android:layout_marginRight="30dp"
        />
        <ImageView 
            android:id="@+id/D"
            android:src="@drawable/D"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="30dp"
            android:layout_marginRight="30dp"
        />
        <ImageView 
            android:id="@+id/E"
            android:src="@drawable/E"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="30dp"
            android:layout_marginRight="30dp"
        />
    </LinearLayout>
</RelativeLayout>

Мой код в основном работает, но мне нужно подправить поля, чтобы все правильно выстроить в линию (чего пока еще нет). Интересно, есть ли какой-нибудь более чистый способ выравнивания по центру наборов кнопок "A B" и "C D E"

ps: проницательный читатель заметит, что я расширяю LinearLayout, но увеличиваю RelativeLayouts. (Я не знаю, почему это вообще может работать, но) когда я вместо этого попытался расширить RelativeLayout, макет «C D E» даже не появился на моем устройстве. Я не знаю, куда это делось.

5
задан Thunder Rabbit 10 August 2011 в 03:12
поделиться