0

我有一個表單。其中有幾行。每行有兩個並排的文本視圖。左邊的textview是靜態的,右邊的textview是動態的。基於右側文本視圖的文本(可以是任意行數),下一行的起點必須如下所示。我正在使用relativelayout並使用xml編寫。我該怎麼做。Android相對佈局對齊

enter image description here

注:我不想使用網格或表格佈局由於一些限制。

+0

具有u檢查我的答案 – kId 2014-09-12 06:08:18

+0

@kaushik我知道,但我有很多領域,我對這種方式不感興趣 – pradeep 2014-09-15 09:20:22

回答

0

RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,ViewGroup.LayoutParams.WRAP_CONTENT); params.addRule(xxxxx);

+0

我應該添加哪條規則? – pradeep 2014-09-11 06:50:48

+0

1. params.addRule(RelativeLayout.RIGHT_OF,left_top_view_id); 2. params.addRule(RelativeLayout.RIGHT_OF,left_bottom_view_id); params.addRule(RelativeLayout.BOTTOM_OF,right_top_view_id); – Thinsky 2014-09-11 06:56:39

0

修復左側的textview靜態並從java代碼中繪製剩餘的項目。

+0

任何方式通過XML? – pradeep 2014-09-11 06:50:24

+0

如果你不限制硬編碼值的寬度和高度,你可以使用xml,否則通過java – Shriram 2014-09-11 06:52:15

0

我開發了適合您需求的自定義RelativeLayout擴展組件。這是一個關鍵值線,可以從xml設置鍵和值。請參閱code here。樣品使用在project

簡要說明:

KeyValueLine是定製的RelativeLayout擴展組件。您可以使用自定義名稱空間從xml設置鍵值和值。

要在項目中添加此視圖,您應該複製xml layout到/ RES /佈局文件夾(修改其外觀,以滿足您的要求,刪除所有花式後來通過代碼來進行調整),並添加

<declare-styleable name="KeyValueLine"> 
    <attr name="key" format="string" /> 
    <attr name="value" format="string" /> 
</declare-styleable> 

到你的/res/values/attrs.xml文件。然後將java implementation添加到您的項目中。瞧! - 您可以使用視圖XML作爲<%your-package-name%.KeyValueLine .../>

希望它能幫助:)

0

你可以試試這個方法

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <LinearLayout 
     android:id="@+id/firstLinearLayout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:orientation="horizontal" > 

     <TextView 
      android:id="@+id/textView1" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="2" 
      android:singleLine="true" 
      android:text="Static Text 1" 
      android:textAppearance="?android:attr/textAppearanceMedium" /> 

     <TextView 
      android:id="@+id/textView2" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="3" 
      android:singleLine="false" 
      android:text="Multiple line\nDynamic text 1" 
      android:textAppearance="?android:attr/textAppearanceMedium" /> 
    </LinearLayout> 

    <LinearLayout 
     android:id="@+id/secondLinearLayout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_below="@+id/firstLinearLayout" 
     android:layout_marginTop="8dp" > 

     <TextView 
      android:id="@+id/textView3" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="2" 
      android:singleLine="true" 
      android:text="Static Text 2" 
      android:textAppearance="?android:attr/textAppearanceMedium" /> 

     <TextView 
      android:id="@+id/textView4" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="3" 
      android:singleLine="false" 
      android:text="Multiple line\nDynamic text 2" 
      android:textAppearance="?android:attr/textAppearanceMedium" /> 
    </LinearLayout> 

</RelativeLayout>