LinearLayout的weight属性的解释

刚刚在stackoverflow上看到一个关于android LinearLayout的weight属性的解释,觉得解释很透彻,帖过来和大家分享一下。

In a nutshell, layout_weight specifies how much of the extra space in the layout to be allocated to the View.

LinearLayout supports assigning a weight to individual children. This attribute assigns an "importance" value to a view, and allows it to expand to fill any remaining space in the parent view. Views‘ default weight is zero.

Calculation to assign any remaining space between child

In general, the formula is:

space assigned to child = (child‘s individual weight) / (sum of weight of every child in Linear Layout)

Example 1

If there are three text boxes and two of them declare a weight of 1, while the third one is given no weight (0), then remaining space is assigned as follows:

1st text box = 1/(1+1+0)

2nd text box = 1/(1+1+0)

3rd text box = 0/(1+1+0)

Example 2

Let‘s say we have a text label and two text edit elements in a horizontal row. The label has no layout_weight specified, so it takes up the minimum space required to render. If the layout_weightof each of the two text edit elements is set to 1, the remaining width in the parent layout will be split equally between them (because we claim they are equally important).

Calculation:

1st label = 0/(0+1+1)

2nd text box = 1/(0+1+1)

3rd text box = 1/(0+1+1)

If, instead, the first one text box has a layout_weight of 1, and the second text box has a layout_weight of 2, then one third of the remaining space will be given to the first, and two thirds to the second (because we claim the second one is more important).

Calculation:

1st label = 0/(0+1+2)

2nd text box = 1/(0+1+2)

3rd text box = 2/(0+1+2)



Source article

原文链接是http://stackoverflow.com/questions/3995825/what-does-androidlayout-weight-mean。

Copied by 啪嗒科技

时间: 2024-10-10 15:54:15

LinearLayout的weight属性的解释的相关文章

Android LinearLayout中weight属性的意义与使用方式

layout_weight 分割父级容器的比例 效果 调整一下: 不设置则不参与父级容器的分割,设置了以后则参与

Android Hack1 使用weight属性实现视图的居中显示

本文地址:http://www.cnblogs.com/wuyudong/p/5898403.html,转载请注明源地址. 如果要实现如下图所示的将按钮居中显示,并且占据父视图的一半,无论屏幕是否旋转 合用weightSum属性和layout_weight属性 不同Android设备的尺寸往往是不同的.作为开发者,我们需要创建适用于不同尺寸屏幕的XML文件.硬编码是不可取的,因此需要其他方法来组织视图. 本文分析如何合用layout_weight和weightSum这两个属性来填充布局内部的任意

【Android 开发笔记】weight属性

混合使用weightSum和layout_weight 先看效果,button占据屏幕宽度的一半. 再看开发文档中的描述. "定义weight总和的最大值.如果未指定该值,以所有子视图的layout_weight属性的累加值作为总和的最大值.一个典型的案例是:通过指定子视图的layout_weight属性为0.5,并设置LinearLayout的weightSum属性为1.0,实现子视图占据可用宽度的50." XML文件的源码. <LinearLayout xmlns:andro

LinearLayout设置 weight 无法绘制的问题

项目地址:ChildLayout 一. 问题起因: 新项目中首页有这么一个需求:看布局: 主要就是"大牌专场"这个栏目的布局问题,呈现一个,左--右上--右下 的形式,因为不能像 iOS 那样直接根据 UED 给的标注来写死布局尺寸,Android 混乱的分辨率决定了这个布局需要采用 android:layout_height="wrap_content" 的形式来决定它的高. 二. 解决方法1:使用 LinearLayout--失败 要画这个布局很简单的,比例都是

LinearLayout关于weight使用问题

今天在解决安卓应用兼容性问题,问题是由于使用LinearLayout的weight引起的,下面我使用一个Demo简述一下问题以及解决方法. 样例1:使用weight的是布局文件,包含TextView <LinearLayout android:layout_width="0dip" android:layout_height="wrap_content" android:layout_weight="1" android:backgroun

android weight 属性正解(转载)

LinearLayout 在androidUI布局中使用非常多,它其中有个很方便又很有意思的属性 weight ,这个属性理解起来不是那么简单的,而真正理解了又觉得非常简单! 下面就通过一个例子来说明: 布局代码: 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/androi

android gravity属性 和 weight属性

来看这个布局文件 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 android:orientation="vertical" 4 android:layout_width="fill_parent" 5

Android开发技巧一--weight属性实现视图的居中(半)显示

面试时,一位面试官问到:"如果我想讲按钮居中显示,并且占据其父视图宽度的一半,应该怎么做到呢?"即实现这种效果: 我们使用weightSum属性和layout_weight属性实现这一要求: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

weight属性你用的真的6嘛?

相信大家在日常开发中一定使用过weight这个属性,它的作用一个是权重,另一个就是渲染优先级,但是你真的能很6的使用它嘛?如果不是,那么请继续往下看!!! 我们知道,当weight起到不同作用的时候,weight属性的值可以影响控件的效果.但是具体的影响是怎么样的哪? 当起权重作用的时候,weight属性值越大,占据的空间越大.(要求weight属性必须和0dp一起使用) 当起渲染优先级作用的时候,weight属性值越大,越后渲染. 其实,所谓占据空间大小是根据下面这个公式算出来的: 实际宽(高