android:layout_weight新认识
2016-03-20 11:05
423 查看
android:layout_weight本来是一个按比例显示的属性,很好理解,不过当同时配置了android:layout_width="match_parent"时就出现了反常的情况。
这里对这个属性做些总结。顺便记录一下
android:layout_weight属性几种情况
一.当android:layout_width="0dip"时,按android:layout_weight分配显示,一切正常。
二.当android:layout_width="wrap_content"时,android:layout_weight属性不生效,可以理解为width优先级必weight高,先按width处理
三.当android:layout_width="match_parent"时,设置android:layout_weight属性,就可能出现反常的情况,主要针对这个情况做个说明。
第三种情况代码如下
![](http://img.blog.csdn.net/20160320020719872?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
理想情况是这样的
![](http://img.blog.csdn.net/20160320020815958?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
现实情况是这样的。。
![](http://img.blog.csdn.net/20160320020835006?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
原因是这个规则:width优先级比较高,先按match_parent分配,剩余的再按照weight分配
假设宽720dp
剩余 = 720 - (720*2) = -720
tv1 = 720 - (-720)* 1/ 3 = 2/3 * 720
tv2 = 720 - (-720)* 2/ 3 = 1/3 * 720
so tv1 :tv2 = 2 : 1
所以要按比例使用weight属性时,设置android:layout_width="0dip"就可以了。还有一点weight属性只在LinnerLayout中生效。
这里对这个属性做些总结。顺便记录一下
android:layout_weight属性几种情况
一.当android:layout_width="0dip"时,按android:layout_weight分配显示,一切正常。
二.当android:layout_width="wrap_content"时,android:layout_weight属性不生效,可以理解为width优先级必weight高,先按width处理
三.当android:layout_width="match_parent"时,设置android:layout_weight属性,就可能出现反常的情况,主要针对这个情况做个说明。
第三种情况代码如下
理想情况是这样的
现实情况是这样的。。
原因是这个规则:width优先级比较高,先按match_parent分配,剩余的再按照weight分配
假设宽720dp
剩余 = 720 - (720*2) = -720
tv1 = 720 - (-720)* 1/ 3 = 2/3 * 720
tv2 = 720 - (-720)* 2/ 3 = 1/3 * 720
so tv1 :tv2 = 2 : 1
所以要按比例使用weight属性时,设置android:layout_width="0dip"就可以了。还有一点weight属性只在LinnerLayout中生效。
相关文章推荐
- android震动器类Vibrator
- 小白学习android
- 【Android】Android应用安装失败及无法打开
- android学习笔记——服务、内容提供器、广播接收器、应用程序上下文
- android动画基础
- Android 设计模式 之 单例模式
- android之startActivityForResult
- Android开发入门
- Qt:Windows10 64bit VMware虚拟机环境,基于Qt 5.6 MinGW,静态编译版本和Android环境
- Android调用系统照相机返回intent为空原因分析
- Android应用的全透明效果--Activity及Dialog的全透明
- Remote Code Execution as System User on Android 5 Samsung Devices abusing WifiCredService (Hotspot 2
- getview重复调用问题
- android获取应用信息,判断应用来源,监听应用的安装和卸载
- Android代码内存优化建议-Android官方篇
- android 源码的下载和编译
- android去掉EditView的默认焦点问题
- Android之弹出/隐藏系统软键盘
- 完美解决android studio启动Genymotion失败的‘unable to load VirtualBox….‘报错
- android坐标