2015-07-20 140 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

您需要使用LinearLayoutandroid: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> 

更新:加圈之间的水平线:

<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. 

我的建议也是线性仅供实现但有些时候多内用线性布局会导致性能问题,这也是你应该意识到这一点。

我们如何开发代码并不重要,我们如何优化代码非常重要。