详解android四种布局之LinearLayout

原创 2016年08月29日 23:26:38

第一种布局: LinearLayout

    LinearLayout又称作线性布局,是一种非常常用的布局。正如它名字所描述的一样,这 个布局会将它所包含的控件在线性方向上依次排列。
    既然是线性排列,肯定就不仅只有一个方向。我们通过 android:orientation属性指定了排列方向。

1. Linearlayout的android:orientation属性

1.1 “vertical” 垂直分布

    当设置成vertical时,不能设置android:layoy_height属性设置为match_parent,否则其他控件都将被覆盖

1.2 “horizontal” 水平分布 ——默认值

    当设置成horizontal时,不能设置android:layoy_width属性设置为match_parent,否则其他控件都将被覆盖

2. 在LinearLayout的布局中,控件与布局相关的属性

2.1 android:gravity 指文字在控件中的对齐方式

2.2 android:layout_gravity 指控件在布局中的对其方式

    layout_gravity的值有三种:bottom、top、center_vertical
    需要注意,当 LinearLayout的排列方向是 horizontal时,只有垂直方向上的对齐方式才会生效,因为此时水 平方向上的长度是不固定的,每添加一个控件,水平方向上的长度都会改变,因而无法指定该方向上的对齐方式。
    同样的道理,当 LinearLayout的排列方向是 vertical时,只有水平方 向上的对齐方式才会生效。

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="match_parent"
    android:orientation="horizontal" >  
    <Button 
        android:id="@+id/button1" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="top" 
        android:text="Button 1" /> 
    <Button 
        android:id="@+id/button2" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="center_vertical" 
        android:text="Button 2" /> 
    <Button 
        android:id="@+id/button3" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_gravity="bottom" 
        android:text="Button 3" />  
</LinearLayout>

当布局为水平布局时,空间选择在布局文件中的对齐方式分别为上中下对齐的效果效果图:
这里写图片描述

2.3 android:layout_weight 这个属性允许我们使用比例的方式来指定控件的大小

    当设置了layout_weight属性后,layout_width/layout_height属性的值若为数字将失效(其余都覆盖layout_weight属性),一般设置了layout_weight的属性后,若是水平布局,控件的高度不可设置为0dp,若是垂直布局,控件的宽度不可以设置为0dp。
    空间分配:系统会先把 LinearLayout下所有控件指定的 layout_weight值相加,得到一个总值, 然后每个控件所占大小的比例就是用该控件的 layout_weight值除以刚才算出的总值。

Width为数值时,width效果被weight覆盖
这里写图片描述
Width为数值时,width效果被weight覆盖,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="match_parent"
    android:orientation="horizontal" >   
    <EditText 
        android:id="@+id/input_message" 
        android:layout_width="0dp" 
        android:layout_height="wrap_content" 
        android:layout_weight="1" 
        android:hint="Type something" />

    <Button 
        android:id="@+id/send" 
        android:layout_width="0dp" 
        android:layout_height="wrap_content"
        android:layout_weight="1" 
        android:text="Send" />  
</LinearLayout>

设置为wrap_content时……weight被覆盖
这里写图片描述

<?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:orientation="horizontal" >
    <EditText 
        android:id="@+id/input_message" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_weight="1" 
        android:hint="Type something" />   
    <Button 
        android:id="@+id/send" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:layout_weight="1" 
        android:text="Send" />  
</LinearLayout>
版权声明:本文为博主原创文章,未经博主允许不得转载。

Layout常用属性介绍

在Android中,共有五种布局方式,分别是:FrameLayout(框架布局),LinearLayout (线性布局),AbsoluteLayout(绝对布局),RelativeLayout(相...
  • hejie322
  • hejie322
  • 2013年04月07日 14:38
  • 17287

new UI-布局之LinearLayout(线性布局)详解

转载自:http://blog.csdn.net/coder_pig/article/details/42344615  ——转载请注明出处:coder-pig,欢迎转载,请勿用于商业用途! ...
  • mypanlong
  • mypanlong
  • 2015年01月05日 16:05
  • 8044

Android LinearLayout中元素按比例分配宽度

今天在安卓应用中调整UI,在一行中(LinearLayout)有三个按钮,都是默认宽度,依次排列,但右边还有很大的空白,不太美观: 最好是能将三个按钮的宽度填满屏幕,并且三者的宽度平均分配,...
  • zhouyingge1104
  • zhouyingge1104
  • 2015年02月27日 20:13
  • 16242

android四种基本布局之LinearLayout

LinearLayout(线性布局): LinearLayout 又称作线性布局,是一种非常常用的布局,android:orientation用于指定LinearLayout中控件呈现的方向 ver...
  • PoeticProgramming
  • PoeticProgramming
  • 2017年01月15日 14:54
  • 108

Android 四种基本布局LinearLayout、RelativeLayout、FrameLayout、TableLayout

LinearLayout 我们称其为线性布局,也是我们最常用的布局。此布局会把它所包含的控件在线性方向上依次排列。那决定是水平排列还是垂直排列就要依靠android:orientation属性来决...
  • JKerving
  • JKerving
  • 2015年09月25日 23:27
  • 510

Android实现计算器布局(四种布局方式)之LinearLayout线性布局

用LinearLayout实现计算器的布局主要使用它属性: android:orientation=”vertical” android:orientation=”horizontal”(通常水平...
  • Julse
  • Julse
  • 2017年03月31日 20:02
  • 1974

Android布局控件之LinearLayout详解

LinearLayout是线性布局控件,它包含的子控件将以横向或竖向的方式排列,按照相对位置来排列所有的widgets或者其他的containers,超过边界时,某些控件将缺失或消失。因此一个垂直列表...
  • u010482217
  • u010482217
  • 2013年06月18日 17:18
  • 751

Android布局详解之二:LinearLayout

原创文章,如有转载,请注明出处:http://blog.csdn.net/yihui823/article/details/6702312 线性布局。这个布局简单的说,就是所有控件都依次排序,谁也不...
  • yihui823
  • yihui823
  • 2011年08月19日 16:20
  • 26849

Android布局-LinearLayout属性详解

介绍安卓中常用的LinearLayout布局的相关属性的使用以及注意事项:1.排列方式orientation 2.摆放位置gravity 3.分割线showDividers 4.基线baselineA...
  • Android_yh
  • Android_yh
  • 2016年05月17日 10:10
  • 8265

Android布局控件之LinearLayout详解

Android布局控件之LinearLayout详解   LinearLayout是线性布局控件,它包含的子控件将以横向或竖向的方式排列,按照相对位置来排列所有的widgets或...
  • u010882595
  • u010882595
  • 2013年06月11日 13:29
  • 428
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:详解android四种布局之LinearLayout
举报原因:
原因补充:

(最多只允许输入30个字)