垂直居中RelativeLayout

时间:2015-12-02 00:10:01

标签: android android-layout

这是我的XML文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
        <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="#33B5E5"
        android:padding="5dp" >
        <ImageView
            android:id="@+id/icon"
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_alignParentLeft="true"
            android:layout_centerInParent="true"
            android:background="@android:drawable/ic_lock_lock" />
        <TextView
            android:id="@+id/func_text"
            android:layout_width="wrap_content"
            android:layout_height="100dp"
            android:layout_gravity="center_vertical"
            android:layout_toRightOf="@+id/icon"
            android:gravity="center"
            android:padding="5dp"
            android:text="This is my test string............"
            android:textColor="#FFFFFF" />
        <ImageView
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:layout_alignParentRight="true"
            android:layout_centerInParent="true"
            android:layout_gravity="center_vertical"
            android:src="@android:drawable/ic_media_next" />
    </RelativeLayout>
</LinearLayout>

它基于t enter image description here堆栈溢出线程中的一个示例。结果如下:

我使用android:layout_height="wrap_content"将内容包装在相对布局中。

如果我将layout_gravity设置为"center""center_vertical",则无关紧要。我永远不能在屏幕中心(垂直)设置这种相对布局。

不确定我在这里缺少什么。

编辑:也可以看@codeMagic的聊天;在某些情况下它可能有所帮助。

1 个答案:

答案 0 :(得分:4)

执行此操作的一种方法是将外部 LinearLayout 更改为 RelativeLayout ,然后将此行添加到内部 RelativeLayout

android:layout_centerVertical="true"