线性布局

LinearLayout 是一个视图组,用于使所有子视图在单个方向(垂直或水平)保持对齐。 您可以使用 android:orientation 属性指定布局方向。

LinearLayout 的所有子视图依次堆叠,因此无论子视图有多宽,垂直列表每行均只有一个子视图,水平列表将只有一行高(最高子视图的高度加上内边距)。 LinearLayout 遵守子视图之间的“边距”以及每个子视图的“重力”(右对齐、居中对齐、左对齐)。

布局权重

权重相等的子视图

要创建一个线性布局,让每个子视图在屏幕上都占据相同的空间量,则将每个视图的 android:layout_height 均设置为 "0dp"(对于垂直布局),或将每个视图的android:layout_width 均设置为 "0dp"(对于水平布局)。 然后,将每个视图的 android:layout_weight 均设置为 "1"

LinearLayout 还支持使用 android:layout_weight 属性为各个子视图分配权重。此属性根据视图应在屏幕上占据的空间量向视图分配“重要性”值。 权重值更大的视图可以填充父视图中任何剩余的空间。子视图可以指定权重值,然后系统会按照子视图声明的权重值的比例,将视图组中的任何剩余空间分配给子视图。 默认权重为零。

例如,如果有三个文本字段,其中两个声明权重为 1,另一个没有赋予权重,则没有权重的第三个文本字段将不会扩展,并且仅占据其内容所需的区域。 另外两个文本字段将以同等幅度进行扩展,以填充所有三个字段都测量后还剩余的空间。 如果为第三个字段提供权重 2(而非 0),那么相当于声明现在它比其他两个字段更为重要,因此,它将获得总剩余空间的一半,其他两个均享余下空间。

示例

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingLeft="16dp"
    android:paddingRight="16dp"
    android:orientation="vertical" >
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/to" />
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/subject" />
    <EditText
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:gravity="top"
        android:hint="@string/message" />
    <Button
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:text="@string/send" />
</LinearLayout>

有关 LinearLayout 的每个子视图可用属性的详情,请参阅 LinearLayout.LayoutParams

时间: 2024-08-08 13:45:08

线性布局的相关文章

线性布局的权重究竟是怎么一回事

写在前面 如果你是新手,我建议你坚持看下去,因为你肯定不了解权重,而权重并没有那么简单.希望看完后对你有一定的帮助. 关于说什么专业不专业,或者app流畅,其实不存在这回事情.设置成0dp,wrap-content,以及match-parent是有很多道理可循的. 关于布局 上节中我们讲了一些TextView的基本用法,那么这节我们就来讲一些Android中的常见布局. Android早期主要有六大布局:分别是线性布局(LinearLayout),相对布局(RelativeLayout),帧布局

第7章(3) LinearLayout(线性布局)

分类:C#.Android.VS2015: 创建日期:2016-02-10 一.简介 LinearLayout将容器内的组件一个挨着一个地横向或纵向依次堆叠起来(不重叠).该布局和WPF的StackPanel控件的功能非常相似,也是通过orientation属性设置排列的方向是纵向(vertical)还是纵向(horizontal). 常用属性有: android:layout_gravity:子元素在容器中的对齐方式.即:往哪一端偏沉(gravity:重力). android:orientat

Android布局之线性布局——LinearLayout

本文将详细介绍线性布局的各种xml属性. xml属性 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="mat

Android基础_2 Activity线性布局和表格布局

在activity的布局中,线性布局和表格布局是最简单的,这次分别从线性布局,表格布局以及线性布局和表格混合布局做了实验,实验中只需要编写 相应的xml的代码,java代码不需要更改,因为我们这里只是练习android的界面设计.参考的资料为mars老师的教程. 线性布局: 线性布局就是将各种控件按照行或者列依次进行排列. 其中本实验用到的各控件的属性解释如下: android:layout_weight属性是指不同的控件在activity中占有体积大小的比例. android:paddingL

Android UI之LinearLayout(线性布局)

说明:线性布局是最常用的布局,其包含的所有View会按照线性来排列. 需要注意的就是四个比较常用的xml属性: 1 android:gravity 对应方法:setGravity(int) 说明:这个属性设置布局内组件的对齐方式,支持以下属性值: 属性值 作用 top 将对象放在其容器的顶部,不改变其大小 bottom 将对象放在其容器的底部,不改变其大小 left 将对象放在其容器的左侧,不改变其大小 right 将对象放在其容器的右侧,不改变其大小 left 将对象放在其容器的左侧,不改变其

Android学习系列(二)布局管理器之线性布局及其自定义实现

转载请注明出处:http://blog.csdn.net/lhy_ycu/article/details/39643669 LinearLayout是Android控件中的线性布局控件,它包含的子控件将以横向(HORIZONTAL)或竖向(VERTICAL)的方式排列,按照相对位置来排列所有的子控件及引用的布局容器.超过边界时,某些控件将缺失或消失.因此一个垂直列表的每一行只会有一个控件或者是引用的布局容器. 一.LinearLayout线性布局的相关属性说明: android:orientat

Android——布局(线性布局linearLayout,表格布局TableLayout,帧布局FrameLayout)

线性布局: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent&q

2.2.1 LinearLayout(线性布局)

本节引言 本节开始讲Android中的布局,Android中有六大布局,分别是: LinearLayout(线性布局),RelativeLayout(相对布局),TableLayout(表格布局) FrameLayout(帧布局),AbsoluteLayout(绝对布局),GridLayout(网格布局) 而今天我们要讲解的就是第一个布局,LinearLayout(线性布局),我们屏幕适配的使用 用的比较多的就是LinearLayout的weight(权重属性),在这一节里,我们会详细地解析 L

LinearLayout线性布局

作用 : 线性布局会将容器中的组件一个一个排列起来, LinearLayout可以控制组件横向或者纵向排列, 通过android:orientation属性控制; 不换行属性 : 线性布局中的组件不会自动换行, 如果组件一个一个排列到尽头之后, 剩下的组件就不会显示出来; 常用属性: (1)基线对齐 xml属性 : android:baselineAligned; 设置方法 : setBaselineAligned(boolean b); 作用 : 如果该属性为false, 就会阻止该布局管理器