LinearLayout(线性布局)

简介:

要点:

android:orientation="vertical"垂直线性布局,"horizontal"水平线性布局

android:gravity="top"(buttom、left、right、center_vertical、fill_vertical、center_horizontal、fill_horizontal、center、fill、clip_vertical、clip_horizontal)控制布局中控件的对齐方式。如果是没有子控件的控件设置此属性,表示其内容的对齐方式,比如说TextView里面文字的对齐方式;若是有子控件的控件设置此属性,则表示其子控件的对齐方式,gravity如果需要设置多个属性值,需要使用“|”进行组合

android:gravity 与 android:layout_gravity的区别
android:gravity是指定本元素的子元素相对它的对齐方式。
android:layout_gravity是指定本元素相对它的父元素的对齐方式。

 android:layout_weight="1"通过设置控件的layout_weight属性以控制各个控件在布局中的相对大小,线性布局会根据该控件layout_weight值与其所处布局中所有控件layout_weight值之和的比值为该控件分配占用的区域。在水平布局的LinearLayout中有两个Button,这两个Button的layout_weight属性值都为1,那么这两个按钮都会被拉伸到整个屏幕宽度的一半。如果layout_weight指为0,控件会按原大小显示,不会被拉伸;对于其余layout_weight属性值大于0的控件,系统将会减去layout_weight属性值为0的控件的宽度或者高度,再用剩余的宽度或高度按相应的比例来分配每一个控件显示的宽度或高度。

例:

布局代码:

复制代码
 1 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     xmlns:tools="http://schemas.android.com/tools"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent"
 5     android:orientation="vertical"
 6     tools:context=".LinearLayoutActivity" >
 7 
 8     <LinearLayout
 9         android:layout_width="match_parent"
10         android:layout_height="match_parent"
11         android:layout_weight="1"
12         android:orientation="horizontal" >
13 
14         <Button
15             android:layout_width="wrap_content"
16             android:layout_height="match_parent"
17             android:layout_weight="1"
18             android:background="#aa0000"
19             android:gravity="center_horizontal|center_vertical"
20             android:text="第一列"
21             android:textSize="15sp" >
22         </Button>
23 
24         <Button
25             android:layout_width="wrap_content"
26             android:layout_height="match_parent"
27             android:layout_weight="1"
28             android:background="#00aa00"
29             android:gravity="center_horizontal"
30             android:text="第二列"
31             android:textSize="15sp" >
32         </Button>
33 
34         <Button
35             android:layout_width="wrap_content"
36             android:layout_height="match_parent"
37             android:layout_weight="1"
38             android:background="#0000aa"
39             android:gravity="center|bottom"
40             android:text="第三列"
41             android:textSize="15sp" >
42         </Button>
43 
44         <Button
45             android:layout_width="wrap_content"
46             android:layout_height="match_parent"
47             android:layout_weight="1"
48             android:background="#aaaa00"
49             android:gravity="bottom"
50             android:text="第四列"
51             android:textSize="15sp" >
52         </Button>
53     </LinearLayout>
54 
55     <LinearLayout
56         android:layout_width="match_parent"
57         android:layout_height="match_parent"
58         android:layout_weight="1"
59         android:orientation="vertical" >
60 
61         <Button
62             android:layout_width="match_parent"
63             android:layout_height="match_parent"
64             android:layout_weight="1"
65             android:gravity="bottom"
66             android:text="第1行"
67             android:textSize="15sp" >
68         </Button>
69 
70         <Button
71             android:layout_width="match_parent"
72             android:layout_height="match_parent"
73             android:layout_weight="1"
74             android:gravity="bottom"
75             android:text="第2行"
76             android:textSize="15sp" >
77         </Button>
78 
79         <Button
80             android:layout_width="match_parent"
81             android:layout_height="match_parent"
82             android:layout_weight="1"
83             android:gravity="bottom"
84             android:text="第3行"
85             android:textSize="15sp" >
86         </Button>
87 
88         <Button
89             android:layout_width="match_parent"
90             android:layout_height="match_parent"
91             android:layout_weight="1"
92             android:gravity="bottom"
93             android:text="第4行"
94             android:textSize="15sp" >
95         </Button>
96     </LinearLayout>
97 
98 </LinearLayout>
复制代码

 其它干货下载资源已放入微信公众号【一个码农的日常】

本文转自欢醉博客园博客,原文链接http://www.cnblogs.com/zhangs1986/archive/2013/01/17/2864237.html如需转载请自行联系原作者


欢醉

 

相关文章
|
SQL 存储 Oracle
oracle错误代码大全(超详细)
本篇文章是对oracle错误代码进行了详细的总结与分析,需要的朋友参考下
2022 0
|
人工智能 自然语言处理 API
阿里云百炼产品月刊【2025年3月】
2025年3月的阿⾥云百炼平台月刊突出展示了其在AI模型和服务上的显著进展。本期亮点包括推出了多个先进的多模态模型,如qwen2.5-omni-7b和视觉推理模型qvq-max系列,大幅提升了文本、图像、语音和视频的处理能力,并降低了计算成本。此外,平台引入了精准的语音识别和翻译模型gummy-realtime-v1及gummy-chat-v1,支持多语言实时交互。为了促进应用开发,阿里云百炼平台还发布了开源推理模型qwq-32b,以及一系列优化的智能体应用模型,增强了自动化和交互性。最后,通过新增周边查询插件和基于MCP的析⾔服务,进一步扩展了平台的功能和服务范围。
814 8
|
12月前
|
存储 IDE 数据处理
使用Python构建一个高级计算器
本文介绍如何使用Python和`tkinter`库构建一个高级计算器。该计算器支持基本运算(加、减、乘、除、求整、求余)、科学运算(平方根、幂等)以及简单的图形用户界面(GUI)。通过该项目,您将学习到如何处理用户输入、执行计算并显示结果。适合初学者提升编程技能。
755 0
|
10月前
|
运维 物联网 数据处理
TDengine vs InfluxDB:谁的“流式计算”功能是真的?
随着物联网、车联网、工业物联网等领域的快速发展,时序数据的处理需求也在不断增加。为了满足这一需求,时序数据库应运而生,为高频数据写入和实时分析提供了强有力的支持。在这一领域,TDengine 和 InfluxDB 是两大领先的解决方案。尽管两者都具有强大的时序数据处理能力,但在流式计算方面,二者存在显著差异。
217 5
|
缓存 前端开发 JavaScript
前端性能优化:从加载到渲染的全方位探索
【6月更文挑战第11天】本文探讨了前端性能优化,重点关注加载速度和渲染效率。压缩与优化资源文件、利用CDN、异步加载和懒加载可提升加载速度。减少DOM操作、合理利用CSS和JavaScript、优化JavaScript执行效率以及利用浏览器缓存能提高渲染效率。通过综合运用这些策略,可提升用户体验。
|
分布式计算 算法 大数据
Sqoop性能优化:高效数据传输的技巧
Sqoop性能优化:高效数据传输的技巧
|
运维 Ubuntu 关系型数据库
使用kettle采集并处理mysql数据库中的数据
使用kettle采集并处理mysql数据库中的数据
使用kettle采集并处理mysql数据库中的数据
|
关系型数据库 MySQL 前端开发
|
SQL 关系型数据库 MySQL
基于c++Mysql学生信息管理系统
基于c++Mysql学生信息管理系统
609 0
基于c++Mysql学生信息管理系统
|
人工智能 安全 测试技术
下一代机密计算即将到来:性能比肩普通应用
随着Intel新一代数据中心级处理器Ice Lake的发布,由Intel SGX保护的可信应用的性能已经可以比肩普通应用,让我们来看看这一切是如何通过硬件进步与软件优化变为可能?
748 0
下一代机密计算即将到来:性能比肩普通应用