文档章节

Android布局控件之LinearLayout详解

s
 sxl01890
发布于 2015/09/13 13:01
字数 1092
阅读 165
收藏 4

Android布局控件之LinearLayout详解

LinearLayout是线性布局控件,它包含的子控件将以横向或竖向的方式排列,按照相对位置来排列所有的widgets或者其他的containers,超过边界时,某些控件将缺失或消失。因此一个垂直列表的每一行只会有一个widget或者是container,而不管他们有多宽,而一个水平列表将会只有一个行高(高度为最高子控件的高度加上边框高度)。LinearLayout保持其所包含的widget或者是container之间的间隔以及互相对齐(相对一个控件的右对齐、中间对齐或者左对齐)。

xml属性

android:baselineAligned:是否允许用户调整它内容的基线。

android:baselineAlignedChildIndex:当一个线性布局与另一个布局是按基线对齐的一部分,它可以指定其内容的基线对齐方式。

android:gravity:指定如何在该对象中放置此对象的内容(x/y坐标值)。

android:orientation:设置它内容的对其方向(横向/竖向)。

 gravity 这个英文单词是重心的意思,在这里就表示停靠位置的意思。

android:layout_gravity 和 android:gravity 的区别

从名字上可以看到,android:gravity是对元素本身说的,元素本身的文本显示在什么地方靠着换个属性设置,不过不设置默认是在左侧的。

android:layout_gravity是相对与它的父元素说的,说明元素显示在父元素的什么位置。

比如说button:android:layout_gravity 表示按钮在界面上的位置。 android:gravity表示button上的字在button上的位置。

可选值

这两个属性可选的值有:top、bottom、left、right、center_vertical、fill_vertical、center_horizontal、fill_horizontal、center、fill、clip_vertical。

而且这些属性是可以多选的,用“|”分开。

默认这个的值是:Gravity.LEFT

LinearLayout还支持为其包含的widget或者是container指定填充权值。好处就是允许其包含的widget或者是container可以填充屏幕上的剩余空间。这也避免了在一个大屏幕中,一串widgets或者是containers挤成一堆的情况,而是允许他们放大填充空白。剩余的空间会按这些widgets或者是containers指定的权值比例分配屏幕。默认的 weight 值为0,表示按照widgets或者是containers实际大小来显示,若高于0的值,则将Container剩余可用空间分割,分割大小具体取决于每一个widget或者是container的layout_weight及该权值在所有widgets或者是containers中的比例。例如,如果有三个文本框,其中两个指定的权值为1,那么,这两个文本框将等比例地放大,并填满剩余的空间,而第三个文本框不会放大,按实际大小来显示。如果前两个文本框的取值一个为2,一个为1,显示第三个文本框后剩余的空间的2/3给权值为2的,1/3大小给权值为1的。也就是权值越大,重要度越大。

如果LinearLayout包含子LinearLayout,子LinearLayout之间的权值越大的,重要度则越小。如果有LinearLayout A包含LinearLayout C,D,C的权值为2,D的权值为1,则屏幕的2/3空间分给权值为1的D,1/3分给权值为2的C。在LinearLayout嵌套的情况下,子LinearLayout必须要设置权值,否则默认的情况是未设置权值的子LinearLayout占据整个屏幕

1.

 

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:orientation="horizontal"

     android:baselineAligned="true"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    >

<Button

     android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:text="按钮1"

    />   

    <Button

     android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:text="按钮2"

    />   

    <Button

     android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:text="按钮3"

    />   

</LinearLayout>

2.

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:orientation="vertical"

     android:baselineAligned="true"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    >

<Button

     android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:text="按钮1"

    />   

    <Button

     android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:text="按钮2"

    />   

    <Button

     android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:text="按钮3"

    />   

</LinearLayout>

 

3.

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:orientation="vertical"

     android:baselineAligned="true"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    android:gravity="center_horizontal"

    >

<Button

     android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:text="按钮1"

    />   

    <Button

     android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:text="按钮2"

    />   

    <Button

     android:layout_width="wrap_content"

    android:layout_height="wrap_content"

    android:text="按钮3"

    />   

</LinearLayout>

Android布局控件之LinearLayout详解


本文转载自:

s
粉丝 3
博文 117
码字总数 55191
作品 0
浦东
私信 提问
Android 布局详解 -一线性布局以及重要属性

Android 布局详解 Android 布局是开发中非常重要的一个知识部分,它的布局分为以下几种: Linear Layout:线性布局 Relative Layout:相对布局 Table Layout:表格布局 Grid View:网格布局 ...

-天蓬元帅-
2013/12/15
809
0
requestWindowFeature(featrueId)简述

我们在开发程序是经常会需要软件全屏显示、自定义标题(使用按钮等控件)和其他的需求,今天这一讲就是如何控制Android应用程序的窗体显示.   首先介绍一个重要方法那就是requestWindowFe...

聂磊
2013/05/26
87
0
Android 布局属性详解

RelativeLayout 第一类:属性值为true或false android:layout_centerHrizontal 水平居中 android:layout_centerVertical 垂直居中 android:layout_centerInparent 相对于父元素完全居中 andr......

长平狐
2013/01/06
79
0
LayoutInflater详解

 分析时候遇到的,记录一个 作用: 1、对于一个没有被载入或者想要动态载入的界面, 都需要使用inflate来载入. 2、对于一个已经载入的Activity, 就可以使用实现了这个Activiyt的的findViewByI...

骑牛找牛
2014/01/30
206
0
Flutter布局篇(1)--水平和垂直布局详解

版权声明:本文首发在公众号Flutter那些事,未经授权,严禁转载。 本文示例代码发布在Github,地址为: https://github.com/AweiLoveAndroid/Flutter-learning/blob/master/README-CN.md 先来...

AWeiLoveAndroid
2018/10/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

总结:TCP/IP协议

一、介绍 TCP协议属于OSI七层模型中的传输层协议,提供处于网络连接中的两台计算机之间的数据 传输。   在传输层有两个性质不同的协议:TCP(Transmission Control Protocol,传输控制协议...

浮躁的码农
8分钟前
1
0
一言不合就删库跑路?万名贡献者和阿里巴巴开源的二三事

9 月 27 日云栖大会,阿里巴巴宣布贾扬清担任开源技术委员会负责人。 有人问:开源是为了什么? 从个人视角看,可以证明自己的专业能力,获得行业认可; 从企业视角看,可以建立技术影响力,...

大涛学弟
18分钟前
2
0
JAVA编程注意事项(性能篇)

1. 尽量在合适的场合使用单例 使用单例可以缩短加载的时间,提高加载的效率,单例主要适用于以下三个方面: 第一,控制资源的使用,通过线程同步来控制资源的并发访问; 第二,控制实例的产生...

你好夜故事
20分钟前
2
0
List 前端 AngularJS JS 对IP排序

数据格式 $scope.dataList=[ {"ip":"192.168.10.10", "port":"8080",...}, { "ip":"192.168.10.12", "port":"8080",... } ,.....] 调用 $scope.ipSortForward($scope.dataList,"ip") 核心代码......

最菜最菜之小菜鸟
20分钟前
2
0
浅析Cassandra LeveledCompactionStrategy

前言 Cassandra是基于LSM架构的分布式数据库。LSM中有一个很重要的过程,就是压缩(Compaction)。默认的压缩策略是SizeTieredCompactionStrategy,今天主要说一下另一种压缩策略LeveledComp...

阿里云官方博客
25分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部