1 父布局 wrap_content 依赖子布局时
子布局 无论是 依赖自己wrap_content、还是match_parent依赖父布局、还是为0使用weight
子布局尺寸 都是 自己原有尺寸。
父 match_parent match_parent wrap_content wrap_content
子 match_parent wrap_content wrap_content match_parent
结果 match_parent wrap_content wrap_content wrap_content
当且仅当父子 布局都为 match_parent 的时候 自布局才会变大。剩下的组合关系 都是子布局原有尺寸。
子布局不变大 父布局能否变大都没有用 子布局能变大父布局不变大也没用。
父布局为 依赖自己wrap_content 时 子布局只能也是依赖自己原有尺寸 此时 权重不起作用!
当且仅当父布局为matchparent 时 子布局才有可能扩大 权重才起作用。
仔细理解权重指的是 剩余量的占比!
###############
0 父布局设置 wapcontent时子布局权重不起作用
1 measure 两次 设置权重属性的组件 和不设置权重的组件 同时计算
第一次measure 所有组件的原有高度尺寸
第二次 measure 先计算剩余尺寸 依据剩余尺寸 计算出有权重属性组件尺寸
计算公式 组件尺寸 = 组件原有尺寸 + (现有组件的所有尺寸总和 — 屏幕尺寸 )*权重比
以下为转载
设屏幕宽度为L,在两个view的宽度都为match_parent的情况下,原有宽度为L,两个的View的宽度都为L,
那么剩余宽度为L-(L+L) = -L, 左边的View占比三分之一,所以总宽度是L+(-L)*1/3 = (2/3)L.
事实上默认的View的weight这个值为0,一旦设置了这个值,那么所在view在绘制的时候执行onMeasure两次的原因就在这。
Google官方推荐,当使用weight属性时,将width设为0dip即可,效果跟设成wrap_content是一样的。
这样weight就可以理解为占比了!
子布局 无论是 依赖自己wrap_content、还是match_parent依赖父布局、还是为0使用weight
子布局尺寸 都是 自己原有尺寸。
父 match_parent match_parent wrap_content wrap_content
子 match_parent wrap_content wrap_content match_parent
结果 match_parent wrap_content wrap_content wrap_content
当且仅当父子 布局都为 match_parent 的时候 自布局才会变大。剩下的组合关系 都是子布局原有尺寸。
子布局不变大 父布局能否变大都没有用 子布局能变大父布局不变大也没用。
父布局为 依赖自己wrap_content 时 子布局只能也是依赖自己原有尺寸 此时 权重不起作用!
当且仅当父布局为matchparent 时 子布局才有可能扩大 权重才起作用。
仔细理解权重指的是 剩余量的占比!
###############
0 父布局设置 wapcontent时子布局权重不起作用
1 measure 两次 设置权重属性的组件 和不设置权重的组件 同时计算
第一次measure 所有组件的原有高度尺寸
第二次 measure 先计算剩余尺寸 依据剩余尺寸 计算出有权重属性组件尺寸
计算公式 组件尺寸 = 组件原有尺寸 + 剩余尺寸*权重比
计算公式 组件尺寸 = 组件原有尺寸 + (现有组件的所有尺寸总和 — 屏幕尺寸 )*权重比
以下为转载
设屏幕宽度为L,在两个view的宽度都为match_parent的情况下,原有宽度为L,两个的View的宽度都为L,
那么剩余宽度为L-(L+L) = -L, 左边的View占比三分之一,所以总宽度是L+(-L)*1/3 = (2/3)L.
事实上默认的View的weight这个值为0,一旦设置了这个值,那么所在view在绘制的时候执行onMeasure两次的原因就在这。
Google官方推荐,当使用weight属性时,将width设为0dip即可,效果跟设成wrap_content是一样的。
这样weight就可以理解为占比了!