十三年专注于网站建设与互联网应用开发,低调、有情怀的网络应用服务商!
南昌百恒科技微信公众号 扫一扫关注
tel-icon全国服务热线:400-680-9298,0791-88117053
扫一扫关注百恒科技微信公众号

android:layout_weight 属性的工作原理

百恒 2017-05-24 17:10:51 3136
       android:layout_weight属性告诉LinearLayout如何布置安排子组件。我们已经为两个组件设置了同样的值,但这并不意味着它们在屏幕上占据同样的宽度。在决定子组件视图的宽度时,LinearLayout使用的是layout_width与layout_weight参数的混合值。
       LinearLayout是分两个步骤来设置视图宽度的。
       第一步,LinearLayout查看layout_width属性值(竖直方位则查看layout_height属性值)。Button和CheckBox组件的layout_width属性值都设置为wrap_content,因此它们获得的
       空间大小仅够绘制自身,如图一所示。
       (在预览界面,很难看出layout_weight是如何工作的,因为按钮显示内容不是布局的一部分。图一展示了按钮组件在已经显示了日期的情况下,LinearLayout布局的显示效果。)

南昌APP开发

      第二步,LinearLayout依据layout_weight属性值进行额外的空间分配,如图二所示。

      在布局中,Button和CheckBox组件拥有相同的layout_weight属性值,因此它们均分了同样大小的额外空间。若将Button组件的weight值设置为2,那么它将获得2/3的额外空间,CheckBox组件则获得剩余的1/3,如图三所示。

      weight设置值也可以是浮点数。对于weight设置值,开发者有着各自的使用习惯。在fragment_crime.xml中,我们使用的是一种cocktail recipe式的weight设置风格。另一种常见的设定方式是各组件属性值加起来等于1.0或100。这样,上个例子中按钮组件的weight值则应该是0.66或66。
       如果想让LinearLayout分配完全相同的宽度给各自的视图,该如何处理呢?很简单,只需设置各组件的layout_width 属性值为0dp 以避开第一步的空间分配就可以了。这样LinearLayout就会只考虑使用layout_weight属性值来完成所需的空间分配,如图四所示。

       了解更多南昌APP开发、网站建设、微信开发等方面的资讯,欢迎来电咨询百恒网络,十多年丰富建站经验,值得信赖!

400-680-9298,0791-88117053
扫一扫关注百恒网络微信公众号

欢迎您的光顾,我们将竭诚为您服务×

售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售前咨询 售前咨询
 
售后服务 售后服务
 
备案专线 备案专线
 
售后服务 售后服务
 
×