В макете приложения для Android, как бы я расположил представление так, чтобы оно всегда отображалось на половине расстояния ниже середины? - PullRequest
0 голосов
/ 08 февраля 2012

Я использую относительный макет в качестве корневого или родительского контейнера, и у меня есть две кнопки для размещения внутри этого макета. Кнопки должны быть расположены одна поверх другой. Проблема в том, что я хочу расположить эти кнопки так, чтобы они отображались ниже центра обзора, а не непосредственно под ним. То есть в нижней половине вида, я хочу, чтобы кнопки появлялись на полпути вдоль этой половины. Я попытался добавить кнопки как дочерние элементы RelativeLayout (который был центрирован по центру) внутри родительского RelativeLayout, и такого рода достигается то, что я пытаюсь, но затем Eclipse жалуется с предупреждением о том, что один набор тегов Relative Layout бесполезен, и что я должен рассмотреть избавление от него.

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

Хорошо, тогда я не уверен, как добиться того, чего я хочу, правильным способом (без предупреждений или ошибок). Вот мой текущий код

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/default_real" >

    <Button
        android:id="@+id/sm_panel_email_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="300sp"
        android:background="@drawable/info_view_email_button" />


    <Button
        android:id="@+id/sm_panel_web_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_below="@+id/sm_panel_email_button"
        android:background="@drawable/info_view_web_button" />

</RelativeLayout>

1 Ответ

1 голос
/ 08 февраля 2012

Как насчет использования двух макетов и атрибута android:layout_weight

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

    <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1"/ >    
    <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1" >
        <Button
            android:id="@+id/sm_panel_email_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:background="@drawable/info_view_email_button" />
        <Button
            android:id="@+id/sm_panel_web_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/sm_panel_email_button"
            android:layout_centerHorizontal="true"
            android:background="@drawable/info_view_web_button" />
    </RelativeLayout>

</LinearLayout>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...