2012-01-10 54 views
0

我想「浮動」一個RelativeLayoutWindow的底部,並具有以下佈局:RelativeLayout的位置和合並

<?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_notificationRelativeLayout是不是底部對齊。用FrameLayout標記替換merge標記會產生所需的效果,但爲了提高效率,如果可能,我想刪除它。

任何人看到這個問題,或有任何建議嗎?是否merge元素不是真正意義上的「父」,導致toolbar_notification元素無法放置?

回答

1

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"> 
...