1

我目前有一个 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"/>

但是用这种方法我只是硬编码宽度,我不确定在更窄的屏幕上更宽会发生什么。有没有办法调整它以使用宽度的百分比?

谢谢!

4

2 回答 2

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>

如您所见,View( LinearLayout) 的容器已设置android:weightSum1.0这意味着1.0它将是其宽度/高度的 100%。然后,如果您在此容器内指定例如android:layout_weight并将其宽度或高度设置为(这部分非常重要,如果您错过它,将使用它的指定值而不是根据权重计算的值)它将获得 50% 的值它是容器的宽度/高度。View.50dpView

于 2013-02-17T22:54:12.417 回答
1

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

不要忘记也使用android:layout_width="0dip"

于 2013-02-17T22:49:15.357 回答