android:layout_weight 和 android: weightSum的使用
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了android:layout_weight 和 android: weightSum的使用,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含8838字,纯文字阅读大概需要13分钟。
内容图文
一. 在LinearLayout 布局下使用 weight作为一个view在父View下的权重
一个View的空间根据设置的原始空间 + 按比例分割的空间 = 最后显示的空间
常用的方法:
1 . 可以这样设置每个子View得到平均的空间
每个子View设置为width="fill_parent" 或者height = "0dp" ,weight="1"
通过计算可以知道这是为什么
假设一个父View的总空间为 p
有n个子View需要均匀显示,设置为fill_parent 的话,空间也就是充满父View 即p
剩余空间 = p - n*p = (1-n)*p ;
每个分割的空间按比例来得到,均匀的话则是 1/n * p*(1-n)
然后得到每个的空间 = 基础的空间 + 分割的空间 = p + (1-n)*p * 1/n
经过化简后得到 每个的空间 等于 1/n * p = p/n ,这样就是均等显示了
2 每个子View设置为width="0dp" 或者height = "0dp" ,weight="1"
那么根据公式来计算一下,也就是
剩余空间为 p - 0 * n = p
按比例分割的空间 = 1/n * p
最后每个分配的空间 = 0 + p/n = p/n ,这样就均等显示了
3.想根据给的weight来分配空间
每个子View 的width=" 0dp" ,然后根据每个weight的需要的比例分割就是了
二 .weightSum 作为这个父View的总分割份数
如果 在父View中需要提供指定的空间给子View使用,就可以使用weightSum来指定
每个子View根据父类提供的空间分配份数
贴出代码和结果
1 <? xml version="1.0" encoding="utf-8" ?> 2 < LinearLayout xmlns:android ="http://schemas.android.com/apk/res/android" 3 android:layout_width ="match_parent" 4 android:layout_height ="match_parent" 5 android:orientation ="vertical" > 6 7 < LinearLayout 8 android:layout_width ="match_parent" 9 android:layout_height ="wrap_content" 10 android:orientation ="horizontal" > 11 12 < TextView 13 android:layout_width ="0dp" 14 android:layout_height ="wrap_content" 15 android:layout_weight ="1" 16 android:background ="#ff0" 17 android:text ="hello 1" /> 18 19 < TextView 20 android:layout_width ="0dp" 21 android:layout_height ="wrap_content" 22 android:layout_weight ="1" 23 android:background ="#f00" 24 android:text ="hello 2" /> 25 26 27 < TextView 28 android:layout_width ="0dp" 29 android:layout_height ="wrap_content" 30 android:layout_weight ="1" 31 android:background ="#ffa" 32 android:text ="hello 3" /> 33 </ LinearLayout > 34 35 </ LinearLayout >
使用weightSum 分割需要的比例
1 <? xml version="1.0" encoding="utf-8" ?> 2 < LinearLayout xmlns:android ="http://schemas.android.com/apk/res/android" 3 android:layout_width ="match_parent" 4 android:layout_height ="match_parent" 5 android:orientation ="vertical" > 6 7 < LinearLayout 8 android:layout_width ="match_parent" 9 android:layout_height ="wrap_content" 10 android:layout_marginTop ="20dp" 11 android:background ="@color/backColor" 12 android:orientation ="horizontal" 13 android:weightSum ="10.0" > 14 15 < TextView 16 android:layout_width ="0dp" 17 android:layout_height ="wrap_content" 18 android:layout_weight ="1" 19 android:background ="#ff0" 20 android:text ="hello 1" /> 21 22 < TextView 23 android:layout_width ="0dp" 24 android:layout_height ="wrap_content" 25 android:layout_weight ="1" 26 android:background ="#f00" 27 android:text ="hello 2" /> 28 29 < TextView 30 android:layout_width ="0dp" 31 android:layout_height ="wrap_content" 32 android:layout_weight ="1" 33 android:background ="#ffa" 34 android:text ="hello 3" /> 35 36 < TextView 37 android:layout_width ="0dp" 38 android:layout_height ="wrap_content" 39 android:layout_weight ="1" 40 android:background ="#ff0" 41 android:text ="hello 1" /> 42 43 < TextView 44 android:layout_width ="0dp" 45 android:layout_height ="wrap_content" 46 android:layout_weight ="1" 47 android:background ="#f00" 48 android:text ="hello 2" /> 49 50 < TextView 51 android:layout_width ="0dp" 52 android:layout_height ="wrap_content" 53 android:layout_weight ="1" 54 android:background ="#ffa" 55 android:text ="hello 3" /> 56 57 < TextView 58 android:layout_width ="0dp" 59 android:layout_height ="wrap_content" 60 android:layout_weight ="1" 61 android:background ="#ff0" 62 android:text ="hello 1" /> 63 64 < TextView 65 android:layout_width ="0dp" 66 android:layout_height ="wrap_content" 67 android:layout_weight ="1" 68 android:background ="#f00" 69 android:text ="hello 2" /> 70 71 < TextView 72 android:layout_width ="0dp" 73 android:layout_height ="wrap_content" 74 android:layout_weight ="1" 75 android:background ="#ffa" 76 android:text ="hello 3" /> 77 </ LinearLayout > 78 79 < LinearLayout 80 android:layout_width ="match_parent" 81 android:layout_height ="wrap_content" 82 android:layout_marginTop ="20dp" 83 android:background ="@color/backColor" 84 android:orientation ="horizontal" 85 android:weightSum ="12.0" > 86 87 < TextView 88 android:layout_width ="0dp" 89 android:layout_height ="wrap_content" 90 android:layout_weight ="1" 91 android:background ="#ff0" 92 android:text ="hello 1" /> 93 94 < TextView 95 android:layout_width ="0dp" 96 android:layout_height ="wrap_content" 97 android:layout_weight ="1" 98 android:background ="#f00" 99 android:text ="hello 2" /> 100 101 < TextView 102 android:layout_width ="0dp" 103 android:layout_height ="wrap_content" 104 android:layout_weight ="1" 105 android:background ="#ffa" 106 android:text ="hello 3" /> 107 108 < TextView 109 android:layout_width ="0dp" 110 android:layout_height ="wrap_content" 111 android:layout_weight ="1" 112 android:background ="#ff0" 113 android:text ="hello 1" /> 114 115 < TextView 116 android:layout_width ="0dp" 117 android:layout_height ="wrap_content" 118 android:layout_weight ="1" 119 android:background ="#f00" 120 android:text ="hello 2" /> 121 122 < TextView 123 android:layout_width ="0dp" 124 android:layout_height ="wrap_content" 125 android:layout_weight ="1" 126 android:background ="#ffa" 127 android:text ="hello 3" /> 128 129 < TextView 130 android:layout_width ="0dp" 131 android:layout_height ="wrap_content" 132 android:layout_weight ="1" 133 android:background ="#ff0" 134 android:text ="hello 1" /> 135 136 < TextView 137 android:layout_width ="0dp" 138 android:layout_height ="wrap_content" 139 android:layout_weight ="1" 140 android:background ="#f00" 141 android:text ="hello 2" /> 142 143 < TextView 144 android:layout_width ="0dp" 145 android:layout_height ="wrap_content" 146 android:layout_weight ="1" 147 android:background ="#ffa" 148 android:text ="hello 3" /> 149 150 < TextView 151 android:layout_width ="0dp" 152 android:layout_height ="wrap_content" 153 android:layout_weight ="1" 154 android:background ="#ff0" 155 android:text ="hello 1" /> 156 157 < TextView 158 android:layout_width ="0dp" 159 android:layout_height ="wrap_content" 160 android:layout_weight ="1" 161 android:background ="#f00" 162 android:text ="hello 2" /> 163 164 < TextView 165 android:layout_width ="0dp" 166 android:layout_height ="wrap_content" 167 android:layout_weight ="1" 168 android:background ="#ffa" 169 android:text ="hello 3" /> 170 </ LinearLayout > 171 172 </ LinearLayout >
weightSum = 10 ,设置了9个TextView ,每个weight = 1
weightSum = 12 ,设置了12个TextView,每个weight = 1
1 < LinearLayout 2 android:layout_width ="match_parent" 3 android:layout_height ="wrap_content" 4 android:layout_marginTop ="20dp" 5 android:background ="@color/backColor" 6 android:orientation ="horizontal" 7 android:weightSum ="10" > 8 9 < TextView 10 android:layout_width ="0dp" 11 android:layout_height ="wrap_content" 12 android:layout_weight ="2" 13 android:background ="#ff0" 14 android:text ="hello 1" /> 15 16 < TextView 17 android:layout_width ="0dp" 18 android:layout_height ="wrap_content" 19 android:layout_weight ="3" 20 android:background ="#f00" 21 android:text ="hello 2" /> 22 23 < TextView 24 android:layout_width ="0dp" 25 android:layout_height ="wrap_content" 26 android:layout_weight ="4" 27 android:background ="#ffa" 28 android:text ="hello 3" /> 29 30 < TextView 31 android:layout_width ="0dp" 32 android:layout_height ="wrap_content" 33 android:layout_weight ="1" 34 android:background ="#ff0" 35 android:text ="hello 1" /> 36 </ LinearLayout >< LinearLayout 37 android:layout_width ="match_parent" 38 android:layout_height ="wrap_content" 39 android:layout_marginTop ="20dp" 40 android:background ="@color/backColor" 41 android:orientation ="horizontal" 42 android:weightSum ="10" > 43 44 < TextView 45 android:layout_width ="0dp" 46 android:layout_height ="wrap_content" 47 android:layout_weight ="2" 48 android:background ="#ff0" 49 android:text ="hello 1" /> 50 51 < TextView 52 android:layout_width ="0dp" 53 android:layout_height ="wrap_content" 54 android:layout_weight ="3" 55 android:background ="#f00" 56 android:text ="hello 2" /> 57 58 < TextView 59 android:layout_width ="0dp" 60 android:layout_height ="wrap_content" 61 android:layout_weight ="4" 62 android:background ="#ffa" 63 android:text ="hello 3" /> 64 65 < TextView 66 android:layout_width ="0dp" 67 android:layout_height ="wrap_content" 68 android:layout_weight ="1" 69 android:background ="#ff0" 70 android:text ="hello 1" /> 71 </ LinearLayout >
定义了weightSum = 10
每个对应的weight
2 3 4 1
原文:http://www.cnblogs.com/act262/p/3624359.html
内容总结
以上是互联网集市为您收集整理的android:layout_weight 和 android: weightSum的使用全部内容,希望文章能够帮你解决android:layout_weight 和 android: weightSum的使用所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。