LinearLayout布局属性
来源:互联网 发布:狙击手模拟训练软件 编辑:程序博客网 时间:2024/06/06 00:53
LinearLayout布局时有三种属性可能会经常遇到,并且还是不好理解的,所以特意拿出来说一下。
1.gravity
1.1 gravity
gravity属性是view本身内容的位置。
例如,TextView的text,Button的text等。
1.2 属性值
上下左右。
纵横
附加选项
注意
使用LinearLayout的时候需要注意:纵只能用横,横只能用纵。
android:orientation="vertical"只有水平方向的属性起作用,比如:left,right,center_horizontal。
android:orientation=“horizontal”只有垂直方向的属性起作用,比如:top,bottom,center_vertical。
是因为已经定义过纵横了,再次定义将无效化。
下面是例子:
gravity
2.1 layout_gravity
细心的你发现了,与前一个十分相似。它们的区别是:
android:gravity是自己内部的子元素
android:layout_gravity是控制自己在父元素的位置。
1.2 属性
属性一毛一样。。
上下左右。
纵横
附加选项
注意
使用LinearLayout的时候需要注意:纵只能用横,横只能用纵。
android:orientation="vertical"只有水平方向的属性起作用,比如:left,right,center_horizontal。
android:orientation=“horizontal”只有垂直方向的属性起作用,比如:top,bottom,center_vertical。
是因为已经定义过纵横了,再次定义将无效化。
下面是例子:
layout_gravity
3.layout_weight
这个属性在LinearLayout的复杂布局时可能会出现,但是大家好像都讲的不是很清楚。在此详细讲讲。
首先,这个属性是权重的意思。
比如这样
两个控件都是1:1,此时不用考虑怎么去设置具体数值值让他们平分,只需要设置两个控件android:layout_weight="1"就行了。
但是会有一些问题,一般都是Layout_width设置的问题:
match_parent和wrap_content显示问题。
当设置该属性的控件的layout_width="warp_content",很正确.
但是当该属性的控件的layout_width="match_parent"的时候,同样的代码就变成了这样。
这是为什么呢?
是因为layout_weight的属性是这样计算的:
自身长度+(子权重/子权重之和)*剩余空间
当为wrap_content的时候,计算时自身长度为0,剩余空间就是match_parent,自然就是正确的比重了。
当为match_parent的时候,计算时自身长度为match_parent,剩余空间为match_parent-(控件个数)3*match_parent=-2match_parent。那么三个的占比就为:
match_parent+(1/6)*-2match_parent=4/6match_parent
match_parent+(2/6)*-2match_parent=2/6match_parent
match_parent+(3/6)*-2match_parent=0match_parent
最后的结果为3:1:0,所以使用match_parent就很怪异。所以Google官方给的解决方法是推荐layout_width="0dp"或layout_height="0dp"
这样的权重就不用像上面一样纠结了,十分的方便。
github源码
文/breakingsword(简书作者)
原文链接:http://www.jianshu.com/p/2e7846bf9126
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
- LinearLayout布局属性难点
- linearlayout线性布局属性
- LinearLayout布局属性
- LinearLayout布局的layout_weight属性
- Android布局-LinearLayout属性详解
- 线性布局LinearLayout常用属性
- Android LinearLayout线性布局属性
- 线性布局LinearLayout layout_weight属性(转)
- 转载 LinearLayout和RelativeLayout 常见布局属性
- Android 布局 LinearLayout 的 layout_weight 属性
- Android的 LinearLayout的布局属性
- RelativeLayout相对于LinearLayout的不同布局属性
- Android常用布局及属性--LinearLayout
- Android LinearLayout布局的layout_weight属性探究
- 常用布局LinearLayout、RelativeLayout的特有属性
- LinearLayout布局~一些属性如orientation介绍
- linearlayout布局的属性 gravity layout_gravity layout_weight
- Android 布局 LinearLayout与RelativeLayout的布局属性
- mysql基础知识扫盲
- Confd+Etcd+endpoint+haproxy
- c# 泛型应用范例
- MQTT协议笔记之mqtt.io项目Websocket协议支持
- UML学习
- LinearLayout布局属性
- liunx下的系统性能监测工具——Nmon
- 机器学习:深入理解 LSTM 网络 (一)
- RxJS快速预览
- MQTT协议笔记之mqtt.io项目HTTP协议支持
- 14.1.1 ice grid 使用 jar 包布署项目
- Maven中Bug处理
- 教你通过逆向思维实施SEO达成目的
- 用户行为日志-js埋点(四)可能存在的问题和总结