2015-10-11 2 views
1

Когда я использую layout_centerHorizontal, чтобы центрировать элемент в горизонтальном представлении, а другой элемент находится в правой части, он не центрирован.layout_centerГоризонтальный элемент не центрирован, когда другой вид находится справа от него.

enter image description here

Но когда я удалить второй элемент, он движется к центру.

enter image description here

Это код:

<?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" 
    android:layout_weight="4"> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="6" 
     android:gravity="center_horizontal"> 

    <TextView 
     android:id="@+id/message" 
     android:layout_width="240dp" 
     android:layout_height="240dp" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="50dp" 
     android:background="#13D372"/> 

    <TextView 
     android:id="@+id/message2" 
     android:layout_width="60dp" 
     android:layout_height="60dp" 
     android:layout_marginTop="50dp" 
     android:layout_toRightOf="@id/message" 
     android:background="#125632" 
     /> 

    </RelativeLayout> 

</LinearLayout> 

ответ

2

Использование android:gravity="center_horizontal" поместит Чайлдс (два ваших TextViews) в горизонтальном центре контейнера.

Удалить android:gravity="center_horizontal" от родителей и сохранить android:layout_centerHorizontal="true" в вашем макете ребенка (TextView), чтобы только центрировать этот.

<?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" 
    android:layout_weight="4"> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="6"> 

     <TextView 
      android:id="@+id/message" 
      android:layout_width="240dp" 
      android:layout_height="240dp" 
      android:layout_centerHorizontal="true" <!--here--> 
      android:layout_marginTop="50dp" 
      android:background="#13D372"/> 

     <TextView 
      android:id="@+id/message2" 
      android:layout_width="60dp" 
      android:layout_height="60dp" 
      android:layout_marginTop="50dp" 
      android:layout_toRightOf="@id/message" 
      android:background="#125632" 
      /> 

    </RelativeLayout> 

</LinearLayout>