2012-02-15 112 views
1

我需要創建與左邊的垂直LinearLayout和右側的TextView一個Android水平佈局設計的權利動態擴展的TextView,如下所示:的Android水平佈局與

¦==========================¦ 
¦  A1  ¦   ¦ 
¦    ¦  BB  ¦ 
¦  A2  ¦   ¦ 
¦==========================¦ 

垂直LinearLayout在左側包含兩個TextView元素,而區段A和B佔據整個屏幕寬度。所有TextView元素都包含動態分配的文本內容。

我希望TextView B的寬度由其內容決定,以便它展開或縮小以顯示其整個內容(不能包裝並且必須顯示在一行中),而寬度左側LinearLayout A是由的TextView B中的寬度來確定,如下所示:

TextView乙擴展:

¦==========================¦ 
¦  A1 ¦    ¦ 
¦   ¦  BBB  ¦ 
¦  A2 ¦    ¦ 
¦==========================¦ 

TextView乙收縮:

¦==========================¦ 
¦  A1  ¦   ¦ 
¦    ¦ B  ¦ 
¦  A2  ¦   ¦ 
¦==========================¦ 

我的想法是使用LinearLayout這樣的:

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" > 

    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" > 

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

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

    </LinearLayout> 

    <TextView 
     android:id="@+id/B" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:singleLine="true" /> 

</LinearLayout> 

但上述佈局,如果TextView A1的含量是足夠長的時間,它需要整個屏幕寬度和TextView乙消失。

任何想法?

回答

3

你應該做出正確的TextView包的內容,使左邊的LinearLayout使用權重屬性爲

android:layout_weight="1.0" 

這將告訴LinearLayout中取剩餘空間。但是,如果文字太長,請減小文字或縮略圖的大小。

+0

謝謝,這是按要求工作。 – 2012-02-15 12:24:22

0

爲什麼不嘗試使用getSuggestedMinimumWidth()設置TextView A的寬度?

我想說:

a.setWidth(a.getSuggestedMinimumWidth()); 
1

爲此,我建議使用RelativeLayout的

我張貼在引擎收錄一個代碼,顯示了一個例子 http://pastebin.com/Ttc42C69

您可以通過使用layout_margin改善這一點。

使用的benfit ...

android:layout_alignRight="@id/aonetext" 
android:layout_alignLeft="@id/aonetext" 

...在atwotext是,如果你要調整的A1保證金和A2你就必須做到這一點的A1,它都將影響

//編輯

另一個積極影響:您節省了xml層次的級別。

+0

+1爲好的替代解決方案。不過,我更願意堅持我最初的'LinearLayout'解決方案,我發現它更易於管理。 – 2012-02-15 12:26:30

+1

根據羅曼傢伙應該知道的重量參數可以導致你的用戶體驗減慢的經驗,因爲它測量兩次http://www.curious-creature.org/2009/02/22/android-layout-tricks-1/ – 2012-02-15 12:32:31

+0

好點,我可能會想改變我的佈局。我對你的代碼做了一些改動:[http://pastebin.com/riYtm1xf](http://pastebin.com/riYtm1xf)。這個改變在ID爲'@ + id/atwotext'的'TextView'的佈局中 – 2012-02-15 13:32:10