垂直居中相对布局

p0l*_*ris 1 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>
Run Code Online (Sandbox Code Playgroud)

它基于 t 之一的示例在此处输入图片说明他堆栈溢出线程。结果如下:

我正在使用android:layout_height="wrap_content".

我是否将layout_gravityas"center""center_vertical". 我永远无法在屏幕中央(垂直)设置此相对布局。

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

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

Mel*_*des 6

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

android:layout_centerVertical="true"
Run Code Online (Sandbox Code Playgroud)