我的Android項目中有一個RelativeLayout,它顯示爲一個簡單的自定義對話框。我在頂部有一個標題,中間有一些文字,底部有一個按鈕。我所要做的只是將標題的底部和頂部的按鈕之間的文字居中。在兩個現有元素之間垂直居中TextView
當它居中時,TextView頂部和標題底部之間的距離應該與TextView底部和按鈕頂部之間的距離相同。
爲了達到這個目的,我在相對佈局中放置了一個框架佈局,並將它放在「按鈕上方」和「標題下方」。
我得到的是這樣的:
這就是我想要達到的目標:
這裏是我的XML(注意,我設置主文TextView programaticaly)。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fillViewport="true"
android:gravity="fill"
android:background="#FFFFFF">
<TextView
android:id="@+id/title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Title"
android:layout_marginTop="10dp"
android:textColor="#000000"
android:gravity="center"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:textSize="40dp">
</TextView>
<Button
android:id="@+id/button"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_gravity="bottom"
android:layout_marginBottom="10dp"
android:layout_alignParentBottom="true"
android:textSize="25dp"
android:text="Click Me"
android:background="@drawable/buttonbk"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:textStyle="bold">
</Button>
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_above="@+id/button"
android:layout_below="@id/title" >
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:gravity="center_vertical|center_horizontal"
android:paddingTop="50dp"
android:paddingLeft="18dp"
android:paddingRight="18dp"
android:layout_gravity="center"
android:textSize="30dp"
android:textColor="#000000">
</TextView>
</FrameLayout>
</RelativeLayout>
感謝@eldivino,我動都沒動嵌入式佈局上面的按鈕代碼,因爲它給我一個錯誤。然而,它確實工作,它導致我找出問題(因爲我是一行一行比較你的代碼),這是我的一個愚蠢的錯誤 - 我有一個50dp填充添加到我的文本視圖的頂部(android:paddingTop =「50dp」),我從原始代碼中刪除了它,它完美地工作。謝謝! – Zippy