2013-10-18 62 views
0

我需要一個帶有5個textview元素的android佈局。佈局應該是這樣的:帶有動態內容文本的Android佈局

 
DynamicLargeText1         DynamicLargeText2 
DynamicSmallText1    DynamicSmallText2 DynamicSmallText3 

由於所有的TextView元素可以有自己的文字內容增長/收縮(動態),我需要特別 兩個元素(DynamicSmallText2和DynamicSmallText3)要正確定位,因爲有固定這兩個要素之間的空間。例如,當DynamicSmallText2在上下文中生長時,文本ID不應與DynamicSmallText3重疊並相反。

我希望有些人可以提前幫助我,thx。

Smalltext2和SmallText3在我的代碼中重疊?

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

<TextView 
     android:id="@+id/largeText1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="largeText1" /> 

<TextView 
     android:id="@+id/smallText1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="smallText1" 
     android:layout_below="@id/largeText1"/> 


<TextView 
     android:id="@+id/largeText2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="largeText2" 
     android:layout_alignParentRight="true"/> 

<TextView 
     android:id="@+id/smallText2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="largeText2" 
     android:layout_alignParentRight="true" 
     android:layout_below="@id/largeText2" 
     android:layout_marginRight="10dp"/> 

<TextView 
     android:id="@+id/smallText3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="smallText3" 
     android:layout_alignParentRight="true" 
     android:layout_below="@id/largeText2" 
     android:layout_toLeftOf="@id/smallText2"/> 

</RelativeLayout> 
+0

使用gridlayout! – r4jiv007

+0

謝謝!我會嘗試與RelativeLayout第一:) – talx

回答

0

使用重量概念這樣

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" > 

    <LinearLayout 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="2" 
     android:orientation="vertical" > 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Text 1" /> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Text 2" /> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="3" 
     android:gravity="bottom|right" 
     android:orientation="vertical" 
     > 

     <TextView 
      android:layout_marginRight="10dp" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Text 3" /> 
    </LinearLayout> 

    <LinearLayout 
     android:gravity="right" 
     android:layout_width="0dp" 
     android:layout_height="match_parent" 
     android:layout_weight="2" 
     android:orientation="vertical" > 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Text 4" /> 

     <TextView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Text 5" /> 
    </LinearLayout> 

</LinearLayout> 

修改於相對佈局

代碼
<TextView 
     android:id="@+id/smallText3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/smallText2" 
     android:layout_alignBottom="@+id/smallText2" 
     android:layout_toLeftOf="@+id/smallText2" 
     android:text="smallText3" /> 
+0

請你能看到我的插入代碼有什麼問題嗎? – talx

+0

更新的答案檢查現在 –

+0

不錯 - 工作! :)你看到其他改進或問題嗎? – talx

0

使用RelativeLayout的,而不是一個的LinearLayout,然後在你的TextView聲明添加屬性。 「機器人:layout_below =」 @ + ID/textView1" 例如textView2這將保持低於1 textView2在任何時候都

0

存在相互衝突的佈局參數,不能同時滿足所有參數。要獲得您想要的結果,請從smallText3刪除android:layout_alignParentRight="true"