猿问

什么是Android:在Android中的权重,以及它是如何工作的?

什么是Android:在Android中的权重,以及它是如何工作的?

我想知道:什么是Android:权重和布局权重,以及它们是如何工作的?



慕尼黑5688855
浏览 921回答 3
3回答

米脂

每份文件,android:weightSum定义最大权重和,并计算为layout_weight如果没有显式指定的话。让我们考虑一个例子LinearLayout水平方向和3ImageViews在里面。现在我们想要这些ImageViews总是占据同等的空间。要实现这一点,您可以设置layout_weight每一个ImageView到1和weightSum将被计算为等于3,如注释所示。<LinearLayout &nbsp;&nbsp;&nbsp;&nbsp;android:layout_width="wrap_content" &nbsp;&nbsp;&nbsp;&nbsp;android:layout_height="wrap_content"&nbsp;&nbsp;&nbsp;&nbsp;<!--&nbsp;android:weightSum="3"&nbsp;--> &nbsp;&nbsp;&nbsp;&nbsp;android:orientation="horizontal" &nbsp;&nbsp;&nbsp;&nbsp;android:layout_gravity="center">&nbsp;&nbsp;&nbsp;<ImageView &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_height="wrap_content"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_weight="1" &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;android:layout_width="0dp"/> &nbsp;&nbsp;.....weightSum对于为任何设备正确呈现布局非常有用,如果您直接设置宽度和高度,则不会出现这种情况。

忽然笑

再加上SuperM和Jeff的答案,如果LinearLayout中有两个视图,第一个视图的布局权重为1,第二个视图的布局_权重为2,且没有指定权重和,则默认情况下,权重计算为3(子视图的权重之和),第一个视图占用空间的1/3,第二个视图的权重为2/3。然而,如果我们指定权重为5,第一个将占用1/5的空间,而第二个将占用2/5。因此,总共有3/5的空间将被布局所占用,其余的空间将保持空。
随时随地看视频慕课网APP
我要回答