2013-02-17 61 views
1

我現在有一個2列布局,看起來像這樣:Android - 如何將我的2列布局更改爲具有動態寬度?

<TextView android:id="@+id/TRAIN_CELL" 
    android:layout_width="275dip" 
    android:layout_height="wrap_content"   
    android:textSize="16sp"/> 

<TextView android:id="@+id/TO_CELL" 
    android:layout_width="25dip" 
    android:textSize="20sp" 
    android:textStyle="bold" 
    android:gravity="center" 
    android:textColor="@color/light_best_blue" 
    android:layout_height="wrap_content" 
    android:layout_weight="1"/> 

但這種做法我只是硬編碼的寬度,我不知道會發生什麼的更廣泛在較窄的屏幕上。有沒有辦法調整這個使用寬度的百分比?

謝謝!

+0

使用LinearLayout並將適當的layout_weight設置爲childrens。 – Leonidos 2013-02-17 22:49:30

回答

3

使用百分比不能指定寬度或高度,但有一些類似 - weightSumlayout_weight 。如果你比如你的View有一個屏幕寬度的一半,你必須做這樣的:

<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_height="wrap_content" 
    android:layout_width="fill_parent" 
    android:orientation="horizontal" 
    android:weightSum="1.0"> 
    <View 
    android:id="@+id/view" 
    android:layout_height="wrap_content" 
    android:layout_weight=".5" 
    android:layout_width="0dip" /> 
</LinearLayout> 

正如你所看到的,一個ViewLinearLayout)容器已成立android:weightSum1.0這意味着1.0將是它的寬度/高度的100%。然後,如果您在此容器中指定android:layout_weightView,例如.5並將其寬度或高度設置爲0dp(這部分非常重要,因爲如果您錯過了這一部分,View將使用它的指定值而不是根據權重計算出的值)將獲得其容器寬度/高度的50%值。

+0

謝謝,現在就試用它。 – Genadinik 2013-02-17 23:02:04

+0

@Genadinik沒問題,希望它有幫助! – 2013-02-17 23:06:28

+0

建議對權重使用整數值,這樣您也可以擁有無​​理分數,如1/3。 – 2013-02-17 23:43:35

1

android:layout_weight="1/2/3/4/5/..."將成爲你的新朋友;-)

不要忘了還用android:layout_width="0dip"