android:layout_weight是一个经常会用到的属性,它只在LinearLayout中生效,下面我们就来看一下:
- 当我们把组件宽度设置都为”match_parent”时:
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="3"
android:text="按钮1" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="按钮2" />
显示效果:
可以看到按钮2占的比例明显比按钮1占的多,那么这个比例是怎么算的呢?其实是a/(a+b)这样算的,因此按钮1算下来所占比例为3/4,按钮2所占为1/4,可是这样完全和真实情况不符合啊。
其实呢,当组件宽度设置为”match_parent”的时候,这里的权重值,表示的组件显示的优先级,而且值越小优先级越高,因为按钮2优先级为1,大于按钮1的优先级,所以按钮2占的是3/4,按钮1占的是1/4。
当组件长度为match_parent时,权重设置的是显示优先级
- 当我们把组件宽度设置都为”0dip”时:
显示效果如下:
这是为什么呢?
当组件长度为0dp时,权重设置的是按比例分配显示空间
所以就是如图的情况了。
- 通常和weight一块用的还有一个属性android:visibility=”visible”:控制组件是否显示,有三个选值visible显示,invisible不显示,但 占空间,gone隐藏。
- 好了,Android weight属性到这里就介绍完了,希望可以给大家提供帮助。
版权声明:本文为博主原创文章,未经博主允许不得转载。