2015-07-20 138 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. 

我的建議也是線性僅供實現但有些時候多內用線性佈局會導致性能問題,這也是你應該意識到這一點。

我們如何開發代碼並不重要,我們如何優化代碼非常重要。