android:layout_weight 属性的工作原理

       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属性值进行额外的空间分配,如图二所示。

      

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

android:layout_weight 属性的工作原理插图(1)

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

      

在布局中,Button和CheckBox组件拥有相同的layout_weight属性值,因此它们均分了同

样大小的额外空间。若将Button组件的weight值设置为2,那么它将获得2/3的额外空间,CheckBox

组件则获得剩余的1/3,如图三所示。

android:layout_weight 属性的工作原理插图(2)

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

      

weight设置值也可以是浮点数。对于weight设置值,开发者有着各自的使用习惯。在

fragment_crime.xml中,我们使用的是一种cocktail recipe式的weight设置风格。另一种常见的设

定方式是各组件属性值加起来等于1.0或100。这样,上个例子中按钮组件的weight值则应该是0.66

或66。

       如果想让LinearLayout分配完全相同的宽度给各自的视图,该如何处理呢?很简单,只需

设置各组件的layout_width 属性值为0dp 以避开第一步的空间分配就可以了。这样

LinearLayout就会只考虑使用layout_weight属性值来完成所需的空间分配,如图四所示。

android:layout_weight 属性的工作原理插图(3)

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

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

提供全面的搜索引擎优化学习交流,专注网站优化和搜索引擎营销推广服务。用专业的SEO技术为企业网站提升关键词排名,让你的网站不仅满足用户体验还要适合搜索引擎优化规则。
易速网站优化公司 » android:layout_weight 属性的工作原理
享更多特权,立即登录下载海量资源
喜欢我嘛?喜欢就按“ctrl+D”收藏我吧!♡