我目前有一个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 :(得分:3)
您无法使用百分比指定宽度或高度,但有类似的内容 - weightSum
和layout_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:weightSum
设置为1.0
,这意味着1.0
将是android:layout_weight
的100%它的宽度/高度。然后,如果您为此容器中的View
指定.5
,例如0dp
,并将其宽度或高度设置为View
(此部分非常重要,就好像您错过了它一样, {{1}}将使用它的指定值而不是根据权重计算的值,它将获得它的容器宽度/高度的50%值。
答案 1 :(得分:1)
android:layout_weight="1/2/3/4/5/..."
将成为你的新朋友; - )
不要忘记也使用android:layout_width="0dip"