layout_gravity不垂直居中我的视图

时间:2016-04-14 14:56:53

标签: android

我试图将我的一个视图放在相对布局中。我正在使用以下代码:

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="0.21"
    android:id="@+id/atm_map_legend_view">

    <ImageButton
        android:id="@+id/atm_icon_legend"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:gravity="center_vertical"
        android:layout_marginRight="10dp"
        android:background="@null"
        android:src="@drawable/help_icon"/>

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/icon_legend_point"
        android:src="@drawable/blurb_point_down"
        android:layout_alignParentTop="true"
        android:layout_alignLeft="@+id/atm_icon_legend"
        android:layout_marginLeft="6dp"
        android:visibility="invisible"/>

</RelativeLayout>

这会得到以下结果:

pic of icon uncentered

如您所见,ImageButton不是垂直居中的。使用android:gravity可以正常工作,但当弹出时会使ImageView混乱(导致它向下移动,与ImageButton重叠。)

关于为什么这不是我ImageButton的中心的任何想法?

1 个答案:

答案 0 :(得分:1)

您是否尝试过android:layout_centerVertical="true"

像这样:

<RelativeLayout
    android:background="@color/colorAccent"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="0.21"
    android:id="@+id/atm_map_legend_view">

    <ImageButton
        android:id="@+id/atm_icon_legend"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:layout_centerVertical="true"
        android:gravity="center_vertical"
        android:layout_marginRight="10dp"
        android:layout_marginEnd="10dp"
        android:background="@null"
        android:src="@mipmap/ic_launcher"/>

</RelativeLayout>

enter image description here