当我为MATCH_PARENT
+ View
设置layout_weight
时,视图的元素表现得很奇怪。请您能解释为什么会这样。例如,这是要进行实验的代码。我不明白这种模式。物品的重量越少,重量就越大,但是还不清楚多少次。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
android:weightSum="5"
tools:context=".MainActivity">
<LinearLayout
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FF0"
android:orientation="horizontal">
</LinearLayout>
<LinearLayout
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#F00"
android:orientation="horizontal">
</LinearLayout>
<LinearLayout
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#F0F"
android:orientation="horizontal">
</LinearLayout>
<LinearLayout
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#0FF"
android:orientation="horizontal">
</LinearLayout>
<LinearLayout
android:layout_weight="1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#00F"
android:orientation="horizontal">
</LinearLayout>
</LinearLayout>
测试黄色布局:设置layout_weight= 0.5
>大?大多少?元素是否缩小了?还是被扔掉了??
<LinearLayout
android:layout_weight="0.5"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#F00"
android:orientation="horizontal">
</LinearLayout>
更新,PS::我知道该布局如何与WRAP_CONTENT
(或0dp
)一起使用。如果您设置MATCH_PARENT
+ layout_weight
,则无论内容如何,WRAP_CONTENT
不能保证内容的大小都是固定的(并且如果内容大小增加了) ,元素将被拉伸)。 我只对模式MATCH_PARENT + layout_weight感兴趣,因为当内容大小超出时,它可以保证块大小。
答案 0 :(得分:0)
放置物品的重量越少,就越重...
原因是因为您要将android:layout_width
作为match_parent
分配给所有LinearLayout。要使android:layout_weight
有效,您应将android:layout_width
设置为0。
答案 1 :(得分:0)
首先,将android:weightSum
赋予布局的父级。
第二,如果布局彼此水平放置,则为每个元素设置android:layout_width="0dp"
。
类似地,对于垂直对齐的元素,给出android:layout_height="0dp"
。