RelativeLayout позиция и слияние - PullRequest
0 голосов
/ 11 января 2012

Я пытаюсь "плавать" RelativeLayout в нижней части Window и иметь следующую раскладку:

<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android">
    <com.my.activity.CanvasView
    android:id="@+id/canvas"
    android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:focusable="true" />
    <RelativeLayout
        android:id="@+id/toolbar_notification"
        android:layout_width="match_parent"
        android:layout_height="35dp"
        android:layout_alignParentBottom="true"
        android:gravity="bottom|center_vertical">
        <ImageView
            android:id="@+id/toolbar_notification_icon"
            android:layout_width="40dp"
            android:layout_height="match_parent"
            android:layout_alignParentBottom="true"
            android:layout_alignParentTop="true"
            android:layout_alignParentRight="true"
            android:contentDescription="@string/content_desc_save_icon"
            android:gravity="center|center_vertical" />
    </RelativeLayout>
</merge>

К сожалению, toolbar_notification RelativeLayout не выполняетсяснизу выровнены.Замена тега merge на тег FrameLayout приводит к желаемому эффекту, но во имя эффективности я бы хотел удалить его, если это возможно.

Кто-нибудь видел эту проблему или у вас есть предложения?Является ли тот факт, что элемент merge не является «родителем» в истинном смысле, приводит к тому, что элемент toolbar_notification не может разместить себя?

1 Ответ

1 голос
/ 11 января 2012

android:gravity="bottom|center_vertical" относится к детям RelativeLayout, а не к RelativeLayout.

Если вы хотите выровнять RelativeLayout по низу родительского элемента (то есть FrameLayout), вы должны использовать layout_gravity вместо этого.

...
<RelativeLayout
        android:id="@+id/toolbar_notification"
        android:layout_width="match_parent"
        android:layout_height="35dp"
        android:layout_alignParentBottom="true"
        android:layout_gravity="bottom|center_vertical">
 ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...