2014-07-18 62 views
0

我想對齊的RelativeLayout內三種觀點在所有三個視圖垂直對齊中心這樣的方式。然後,我想將「A」視爲與RelativeLayout左側對齊,右側視圖「C」並在「A」和「C」之間視圖「B」。 XML聲明如下所示:layout_centerInParent覆蓋layout_alignParentRight/layout_alignParentLeft在安卓4.1.2

<RelativeLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"> 

    <ViewA 
     android:id="@+id/viewA" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_centerInParent="true" 
     ... /> 

    <ViewC 
     android:id="@+id/viewC" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_centerInParent="true" 
     ... /> 

    <ViewB 
     android:id="@+id/viewB" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_toLeftOf="@id/viewC" 
     android:layout_toRightOf="@+id/viewA" 
     ... /> 

</RelativeLayout> 

這對於Android 4.2.2及更高版本,但不低於(SDK 16),可以很好地工作。看起來android:layout_centerInParent覆蓋了android:layout_alignParentLeft/android:layout_alignParentRight,因爲「A」和「C」都出現在佈局中間,而不是分別對齊左側和右側。有沒有辦法在RelativeLayout中使用不同的方式設置垂直對齊?

+4

你應該做layout_centerVertical真正對所有的意見和center_horizo​​ntaltrue到中間的一個左對齊,右到左,右圖像視圖 –

+0

完全忘了那個屬性......問題解決了 –

回答

1

爲什麼當你想使它垂直居中時,你使用的是android:layout_centerInParent="true"。改爲使用android:layout_centerVertical="true"

+0

如上所述,忘記了那個屬性,謝謝 –

0

試試這種方式,希望這會幫助你解決你的問題。

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 

    <TextView 
     android:id="@+id/textViewA" 
     android:layout_width="0dp" 
     android:layout_weight="1" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:textSize="20sp" 
     android:text="A"/> 

    <TextView 
     android:id="@+id/textViewB" 
     android:layout_width="0dp" 
     android:layout_weight="1" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:textSize="20sp" 
     android:text="B"/> 

    <TextView 
     android:id="@+id/textViewC" 
     android:layout_width="0dp" 
     android:layout_weight="1" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:textSize="20sp" 
     android:text="C"/> 

</LinearLayout> 
0

enter image description here

讓您的佈局像這樣

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="center_vertical" > 

    <View 
     android:id="@+id/viewA" 
     android:layout_width="80dp" 
     android:layout_height="80dp" 
     android:layout_alignParentLeft="true" 
     android:background="#ff00" /> 

    <View 
     android:id="@+id/viewC" 
     android:layout_width="80dp" 
     android:layout_height="80dp" 
     android:layout_alignParentRight="true" 
     android:background="#00ff00" /> 

    <View 
     android:id="@+id/viewB" 
     android:layout_width="80dp" 
     android:layout_height="80dp" 
     android:layout_centerHorizontal="true" 
     android:background="#0000ff" /> 

</RelativeLayout>