2015-07-20 5 views
0

Я использовал относительную компоновку с некоторыми видами. Мне нужно выровнять представления по горизонтали, но представления не отображаются одинаково во всех устройствах размера экрана?Относительная компоновка макета

<RelativeLayout 
     android:id="@+id/layout_relative" 
     android:layout_width="fill_parent" 
     android:layout_height="90dp" 
     android:layout_marginTop="-5dp" 
     android:background="#007DD7"> 

     <TextView 
      android:id="@+id/text1_login" 
      android:layout_width="40dp" 
      android:layout_height="40dp" 
      android:layout_gravity="center" 
      android:layout_marginLeft="45dp" 
      android:layout_marginTop="10dp" 
      android:background="@drawable/circle" 
      android:backgroundTint="@color/white" 
      android:gravity="center" 
      android:shadowRadius="10.0" 
      android:text="1" 
      android:textColor="@android:color/holo_blue_dark" 
      android:textSize="18sp" /> 

     <TextView 
      android:id="@+id/text2_login" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/text1_login" 
      android:layout_marginTop="5dp" 
      android:layout_marginBottom="10dp" 
      android:layout_marginLeft="45dp" 
      android:paddingLeft="3dp" 
      android:paddingRight="3dp" 
      android:text="Login" 
      android:textColor="@color/white" 
      android:textSize="20sp" /> 

     <View 
      android:id="@+id/1_line" 
      android:layout_centerHorizontal="@+id/text1_login" 
      android:layout_width="70dp" 
      android:layout_height="2dp" 
      android:layout_marginLeft="90dp" 
      android:layout_marginTop="30dp" 
      android:background="@android:color/white" 
      android:backgroundTint="@color/add_contact_selected"/> 

     <TextView 
      android:id="@+id/text1_delivery" 
      android:layout_width="40dp" 
      android:layout_height="40dp" 
      android:layout_gravity="center" 
      android:layout_marginLeft="170dp" 
      android:layout_marginTop="10dp" 
      android:background="@drawable/circle" 
      android:shadowRadius="10.0" 
      android:text="2" 
      android:gravity="center" 
      android:textColor="@android:color/holo_blue_dark" 
      android:textSize="18sp" 
      android:backgroundTint="@color/add_contact_selected"/> 
     <TextView 
      android:id="@+id/text2_delivery" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/text1_delivery" 
      android:layout_marginTop="5dp" 
      android:layout_marginBottom="10dp" 
      android:layout_marginLeft="25dp" 
      android:gravity="center_horizontal" 
      android:maxLines="2" 
      android:paddingLeft="3dp" 
      android:paddingRight="3dp" 
      android:text="Delivery" 
      android:textColor="@color/add_contact_selected" 
      android:textSize="20sp" /> 
     <View 
      android:id="@+id/2_line" 
      android:layout_centerHorizontal="@+id/text1_delivery" 
      android:layout_width="80dp" 
      android:layout_height="2dp" 
      android:layout_marginLeft="215dp" 
      android:layout_marginTop="30dp" 
      android:background="@android:color/white" 
      android:backgroundTint="@color/add_contact_selected"/> 

     <TextView 
      android:id="@+id/text1_payment" 
      android:layout_width="40dp" 
      android:layout_height="40dp" 
      android:layout_gravity="center" 
      android:layout_marginLeft="300dp" 
      android:layout_marginTop="10dp" 
      android:background="@drawable/circle" 
      android:gravity="center" 
      android:shadowRadius="10.0" 
      android:text="3" 
      android:textColor="@android:color/holo_blue_dark" 
      android:textSize="18sp" 
      android:backgroundTint="@color/add_contact_selected"/> 
     <TextView 
      android:id="@+id/text2_payment" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/text1_payment" 
      android:gravity="center_horizontal" 
      android:layout_marginTop="5dp" 
      android:layout_marginBottom="10dp" 
      android:layout_marginLeft="260dp" 
      android:maxLines="2" 
      android:paddingLeft="3dp" 
      android:paddingRight="3dp" 
      android:text="Payment" 
      android:textColor="@color/add_contact_selected" 
      android:textSize="20sp" 
      /> 
    </RelativeLayout> 
+2

Положите скриншот на то, что вы действительно хотите, и что вы получаете прямо сейчас с этим макетом. – dhuma1981

ответ

0

Вы должны использовать LinearLayout с android:orientation="horizontal" и играть с android:layout_weight чтобы Allign ваших взглядов.

Я редактировал код:

<LinearLayout 
     android:id="@+id/layout_linear" 
     android:layout_width="fill_parent" 
     android:layout_height="90dp" 
     android:layout_marginTop="-5dp" 
     android:background="#007DD7" 
     android:orientation="horizontal"> 

     <LinearLayout 
      android:orientation="vertical" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:gravity="center"> 
      <TextView 
       android:id="@+id/text1_login" 
       android:layout_width="40dp" 
       android:layout_height="40dp" 
       android:layout_gravity="center" 
       android:layout_marginTop="10dp" 
       android:background="@drawable/circle" 
       android:backgroundTint="@color/white" 
       android:gravity="center" 
       android:shadowRadius="10.0" 
       android:text="1" 
       android:textColor="@android:color/holo_blue_dark" 
       android:textSize="18sp" /> 

      <TextView 
       android:id="@+id/text2_login" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_below="@+id/text1_login" 
       android:layout_marginTop="5dp" 
       android:layout_marginBottom="10dp" 
       android:paddingLeft="3dp" 
       android:paddingRight="3dp" 
       android:text="Login" 
       android:textColor="@color/white" 
       android:textSize="20sp" /> 

      <View 
       android:id="@+id/1_line" 
       android:layout_width="fill_parent" 
       android:layout_height="2dp" 
       android:background="@android:color/white" 
       android:backgroundTint="@color/add_contact_selected"/> 
     </LinearLayout> 
     <LinearLayout 
      android:orientation="vertical" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:gravity="center"> 
      <TextView 
       android:id="@+id/text1_delivery" 
       android:layout_width="40dp" 
       android:layout_height="40dp" 
       android:layout_gravity="center" 
       android:layout_marginTop="10dp" 
       android:background="@drawable/circle" 
       android:shadowRadius="10.0" 
       android:text="2" 
       android:gravity="center" 
       android:textColor="@android:color/holo_blue_dark" 
       android:textSize="18sp" 
       android:backgroundTint="@color/add_contact_selected"/> 
      <TextView 
       android:id="@+id/text2_delivery" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_below="@+id/text1_delivery" 
       android:layout_marginTop="5dp" 
       android:layout_marginBottom="10dp" 
       android:gravity="center_horizontal" 
       android:maxLines="2" 
       android:paddingLeft="3dp" 
       android:paddingRight="3dp" 
       android:text="Delivery" 
       android:textColor="@color/add_contact_selected" 
       android:textSize="20sp" /> 
     </LinearLayout> 
     <LinearLayout 
      android:orientation="vertical" 
      android:layout_width="0dp" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:gravity="center"> 
      <TextView 
       android:id="@+id/text1_payment" 
       android:layout_width="40dp" 
       android:layout_height="40dp" 
       android:layout_gravity="center" 
       android:layout_marginTop="10dp" 
       android:background="@drawable/circle" 
       android:gravity="center" 
       android:shadowRadius="10.0" 
       android:text="3" 
       android:textColor="@android:color/holo_blue_dark" 
       android:textSize="18sp" 
       android:backgroundTint="@color/add_contact_selected"/> 
      <TextView 
       android:id="@+id/text2_payment" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_below="@+id/text1_payment" 
       android:gravity="center_horizontal" 
       android:layout_marginTop="5dp" 
       android:layout_marginBottom="10dp" 
       android:maxLines="2" 
       android:paddingLeft="3dp" 
       android:paddingRight="3dp" 
       android:text="Payment" 
       android:textColor="@color/add_contact_selected" 
       android:textSize="20sp" 
       /> 
     </LinearLayout> 
    </LinearLayout> 

Update: добавить горизонтальную линию между кругами:

<RelativeLayout 
    android:orientation="vertical" 
    android:layout_width="0dp" 
    android:layout_height="match_parent" 
    android:layout_weight="1"> 
    <TextView 
     android:id="@+id/text1_login" 
     android:layout_width="40dp" 
     android:layout_height="40dp" 
     android:layout_gravity="center" 
     android:layout_marginTop="10dp" 
     android:background="@drawable/circle" 
     android:backgroundTint="@color/white" 
     android:gravity="center" 
     android:shadowRadius="10.0" 
     android:text="1" 
     android:textColor="@android:color/holo_blue_dark" 
     android:textSize="18sp" 
     android:layout_centerHorizontal="true" /> 

    <TextView 
     android:id="@+id/text2_login" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/text1_login" 
     android:layout_marginTop="5dp" 
     android:layout_marginBottom="10dp" 
     android:paddingLeft="3dp" 
     android:paddingRight="3dp" 
     android:text="Login" 
     android:textColor="@color/white" 
     android:textSize="20sp" 
     android:layout_centerHorizontal="true" /> 

    <View 
     android:id="@+id/1_line" 
     android:layout_width="match_parent" 
     android:layout_height="2dp" 
     android:background="@android:color/white" 
     android:backgroundTint="@color/add_contact_selected" 
     android:layout_marginTop="30dp" 
     android:layout_toRightOf="@+id/text1_login" /> 
</RelativeLayout> 
<RelativeLayout 
    android:orientation="vertical" 
    android:layout_width="0dp" 
    android:layout_height="match_parent" 
    android:layout_weight="1"> 
    <View 
     android:id="@+id/2_line" 
     android:layout_width="match_parent" 
     android:layout_height="2dp" 
     android:background="@android:color/white" 
     android:backgroundTint="@color/add_contact_selected" 
     android:layout_marginTop="30dp" 
     android:layout_toLeftOf="@+id/text1_delivery" /> 
    <TextView 
     android:id="@+id/text1_delivery" 
     android:layout_width="40dp" 
     android:layout_height="40dp" 
     android:layout_gravity="center" 
     android:layout_marginTop="10dp" 
     android:background="@drawable/circle" 
     android:shadowRadius="10.0" 
     android:text="2" 
     android:textColor="@android:color/holo_blue_dark" 
     android:textSize="18sp" 
     android:backgroundTint="@color/add_contact_selected" 
     android:gravity="center" 
     android:layout_centerHorizontal="true" /> 
    <View 
     android:id="@+id/22_line" 
     android:layout_width="match_parent" 
     android:layout_height="2dp" 
     android:background="@android:color/white" 
     android:backgroundTint="@color/add_contact_selected" 
     android:layout_marginTop="30dp" 
     android:layout_toRightOf="@+id/text1_delivery" /> 
    <TextView 
     android:id="@+id/text2_delivery" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/text1_delivery" 
     android:layout_marginTop="5dp" 
     android:layout_marginBottom="10dp" 
     android:gravity="center_horizontal" 
     android:maxLines="2" 
     android:paddingLeft="3dp" 
     android:paddingRight="3dp" 
     android:text="Delivery" 
     android:textColor="@color/add_contact_selected" 
     android:textSize="20sp" 
     android:layout_centerHorizontal="true" /> 
</RelativeLayout> 
<RelativeLayout 
    android:orientation="vertical" 
    android:layout_width="0dp" 
    android:layout_height="match_parent" 
    android:layout_weight="1"> 
    <View 
     android:id="@+id/3_line" 
     android:layout_width="match_parent" 
     android:layout_height="2dp" 
     android:background="@android:color/white" 
     android:backgroundTint="@color/add_contact_selected" 
     android:layout_marginTop="30dp" 
     android:layout_toLeftOf="@+id/text1_payment" /> 
    <TextView 
     android:id="@+id/text1_payment" 
     android:layout_width="40dp" 
     android:layout_height="40dp" 
     android:layout_gravity="center" 
     android:layout_marginTop="10dp" 
     android:background="@drawable/circle" 
     android:gravity="center" 
     android:shadowRadius="10.0" 
     android:text="3" 
     android:textColor="@android:color/holo_blue_dark" 
     android:textSize="18sp" 
     android:backgroundTint="@color/add_contact_selected" 
     android:layout_centerHorizontal="true" /> 
    <TextView 
     android:id="@+id/text2_payment" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/text1_payment" 
     android:gravity="center_horizontal" 
     android:layout_marginTop="5dp" 
     android:layout_marginBottom="10dp" 
     android:maxLines="2" 
     android:paddingLeft="3dp" 
     android:paddingRight="3dp" 
     android:text="Payment" 
     android:textColor="@color/add_contact_selected" 
     android:textSize="20sp" 
     android:layout_centerHorizontal="true" /> 
</RelativeLayout> 

+0

спасибо .. отлично работает .. Но одна проблема не может просмотреть строку. – User123

+0

Измените его цвет или увеличьте высоту линии (вид). – Rami

+0

Это видно. но остается ниже макета. Но мне нужно посередине двух кругов. – User123

0

Для выравнивания представлений по горизонтали, вы должны использовать линейную компоновку с горизонтальной ориентацией и присваивать веса каждому дочернему виду.

Проверить этот пример, который я написал, используя макет -

<LinearLayout 
    android:id="@+id/layout_relative" 
    android:layout_width="fill_parent" 
    android:layout_height="90dp" 
    android:layout_marginTop="-5dp" 
    android:orientation="horizontal" 
    android:background="#007DD7"> 

    <TextView 
     android:id="@+id/text1_login" 
     android:layout_width="0dp" 
     android:layout_height="40dp" 
     android:layout_gravity="center" 
     android:layout_marginLeft="45dp" 
     android:layout_marginTop="10dp" 
     android:background="@drawable/circle" 
     android:backgroundTint="@color/white" 
     android:gravity="center" 
     android:shadowRadius="10.0" 
     android:text="1" 
     android:layout_weight="1" 
     android:textColor="@android:color/holo_blue_dark" 
     android:textSize="18sp" /> 

    <TextView 
     android:id="@+id/text2_login" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:layout_marginTop="5dp" 
     android:layout_marginBottom="10dp" 
     android:layout_marginLeft="45dp" 
     android:paddingLeft="3dp" 
     android:paddingRight="3dp" 
     android:text="Login" 
     android:textColor="@color/white" 
     android:textSize="20sp" /> 

    <TextView 
     android:id="@+id/text1_delivery" 
     android:layout_width="0dp" 
     android:layout_height="40dp" 
     android:layout_weight="1" 
     android:layout_gravity="center" 
     android:layout_marginLeft="170dp" 
     android:layout_marginTop="10dp" 
     android:background="@drawable/circle" 
     android:shadowRadius="10.0" 
     android:text="2" 
     android:gravity="center" 
     android:textColor="@android:color/holo_blue_dark" 
     android:textSize="18sp" 
     android:backgroundTint="@color/add_contact_selected"/> 

</LinearLayout> 
0

Я видел все ответы людей который предложил использовать LinearLayout. Одна вещь, которую вы должны знать очень четко. Используя Relative или Linear, мы можем достичь всего макета.

Сначала вы должны проанализировать, какой дизайн будет хорошим. Использование может зависеть от трех факторов.

1.Easy designing 
2.Layout performance 
3.How much you know about attributes of layout. 

Мое предложение также Linear только для реализации, но несколько раз многократный внутренний линейный макет будет вызывать проблемы с производительностью, и это также вы должны знать об этом.

Как мы разрабатываем код, не важно, как мы оптимизируем код, очень важно.

Смежные вопросы