【问题标题】:Android relative layout align parent rightAndroid相对布局对齐父权
【发布时间】:2013-07-03 11:00:48
【问题描述】:

我有以下布局:

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

<RelativeLayout
    android:id="@+id/main_layPanelCircle"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical|center_horizontal"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    android:layout_marginTop="15dp"
    android:background="@drawable/main_panel_a"
    android:orientation="vertical"
    android:padding="10dp" >

    <ImageView
        android:id="@+id/main_imgBreachAlert"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginRight="5dp" />

    <Button
        android:id="@+id/main_btnMap"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:background="@null"
        android:drawableTop="@drawable/icon_find"
        android:text="@string/main_locate"
        android:textColor="@android:color/white"
        android:textSize="10sp" />

    <LinearLayout
        android:id="@+id/main_llPanelCycleMiddle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/main_btnMap"
        android:layout_centerInParent="true"
        android:orientation="horizontal" >

        <Button
            android:id="@+id/main_btnLeft"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@null"
            android:drawableTop="@drawable/icon_call"
            android:text="@string/main_call"
            android:textColor="@android:color/white"
            android:textSize="10sp"
            android:visibility="visible" />

        <Button
            android:id="@+id/main_btnEmergency"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@null"
            android:drawableTop="@drawable/icon_emergency"
            android:scaleType="center"
            android:text="@string/main_emergency"
            android:textColor="@android:color/white"
            android:textSize="9sp"
            android:textStyle="bold" />

        <Button
            android:id="@+id/main_btnRight"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@null"
            android:drawableTop="@drawable/icon_store"
            android:text="@string/main_store"
            android:textColor="@android:color/white"
            android:textSize="10sp" />
    </LinearLayout>

    <Button
        android:id="@+id/main_btnMore"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/main_llPanelCycleMiddle"
        android:layout_centerHorizontal="true"
        android:background="@null"
        android:drawableTop="@drawable/icon_more"
        android:text="@string/main_more"
        android:textColor="@android:color/white"
        android:textSize="10sp" />
</RelativeLayout>

</LinearLayout>

当我设置 main_imgBreachAlert android:layout_alignParentLeft="true" 时一切正常(左图),但当我将其设置为右侧时,我的相对布局拉伸(左图):

http://i.imgur.com/uDJqF0k.jpg?1

请您告诉我如何解决这个问题。

谢谢

【问题讨论】:

  • 您是否同时将其与父级左右对齐?如果是这样,这会强制它填充父级,覆盖 wrap_content(作为两个弊端中的较小者,另一个选择是将布局中的其他任何东西缩小到相同的大小)。

标签: android android-relativelayout


【解决方案1】:

如果您希望图像在布局中居中,请尝试android:layout_centerInParent="true" 并删除 alignParentLeft 属性。

如果只想右对齐,使用android:layout_alignParentRight="true"即可。

<ImageView
    android:id="@+id/main_imgBreachAlert"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_marginRight="5dp" />

【讨论】:

  • 然后只使用 android:alignParentRight="true" 并移除 alignParentLeft 属性。
  • 如果我设置 alignParentRight 比它拉伸该控件所在的父级。我认为我的方法是错误的。我实际上想设置布局背景并围绕该背景包装布局,而不是将其他控件放在该布局内,但它应该保持围绕背景图像。如果这有任何意义。
  • 如果您尝试我的答案中的代码,它会延伸吗?它应该只是包装内容(您的图像)并正确对齐。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多