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="match_parent"
    android:orientation="vertical">
</LinearLayout>

  ①android:layout_width---->设置此布局的宽度,有三种模式:

      fill_parent:充满屏幕(已过时,用下面的match_parent代替)

      match_parent:充满屏幕(推荐)

      wrap_parent:包含组件,意思就是你的组件多大,那么就占多大的空间。

  ②android:layout_height---->设置此布局的高度,模式同上;

  ③android:orientation---->此属性设置此线性布局的方式,有两个参数:

      vertical:垂直布局:即子控件都在子控件的上下位置,例如

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">            //这里选用垂直布局

    <Button
        android:layout_width="match_parent"        //宽度充满屏幕
        android:layout_height="wrap_content"        //高度包含组件
        android:text="FirstButton"
        android:id="@+id/button" />

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="SecondButton"
        android:id="@+id/button2" />
</LinearLayout>

        显示结果:

      horizontal:水平布局:即子控件都在子控件的左右位置。例如:

<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:layout_width="wrap_content"      //宽度包含组件
        android:layout_height="match_parent"    //这里设置Button控件的高度充满屏幕
        android:text="FirstButton"
        android:id="@+id/button" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:text="SecondButton"
        android:id="@+id/button2" />
</LinearLayout>

        显示结果:

  ④android:baselineAligned---->此布局中的子控件是否基线对齐,其实就是设置在不在一条线上,他只有两个参数,true和false

      false若设置false,那么他里面的内容就不对齐。

      true若设置true,那么就对齐。 例如:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:baselineAligned="false"      //这里设置为false
    android:orientation="horizontal">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="hello "
        android:textSize="24sp"
         />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="world"
         />
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="hello world"
        android:textSize="45sp"
        />
</LinearLayout>

        显示结果:

    当设置为true时:

    结果一目了然。

  ⑤android:gravity:指定布局里面的子控件的位置,几个常用参数,可以接受两个参数中间用”|“分隔开

      center:控件处于布局的中心位置。

      left:控件位于布局的左边。

      right:控件位于布局的右边。

      center|left:控件位于布局的中左位置。(也可以用center_vertical,和这个同样的作用)

      官方给出的属性:

      大家可以见明知义。例子:   

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center|left"
    android:orientation="horizontal">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="hello "
        android:textSize="24sp"
         />
</LinearLayout>

      显示结果为:

  ⑥android:layout_gravity:是指此子控件在布局中的位置。参数同上:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="hello "
        android:gravity="left"
        android:textSize="24sp"
         />
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="hello "
        android:textSize="24sp"
        android:layout_gravity="center"
        />
</LinearLayout>

        显示结果:

   ⑦android:divider:绘制子组件之间的分割线,参数可以是一个图片也可以是一个xml的shape标记,图片或者shape位于drawable下

    android:showDividers:显示分割线的方式,有四种:

      begging:在整体的上方添加

      middle:在每个组件之间添加

      end:在整体的下方添加

      none:不显示

       例如:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:divider="@drawable/shapee"      //这里引用的shapee为一个xml文件,代码在下面
    android:showDividers="middle"         //这里显示方法为在每个组件之间添加
    android:orientation="vertical">

      shapee.xml文件

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#00ff00" />         //此属性指定颜色  
    <size android:height="5px" />            //分割线的高度
</shape>

        效果如下:

  ⑧android:weightSum:设定子控件中weight中的总和,其实就是控制子控件与屏幕或者其他子控件的比例,个人感觉这个比较重要,对于布局有很好的作用。

    例如一下代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal"                  //布局设置为水平布局
    android:weightSum="1"                        //设置子控件的weight总和为1
    >

    <Button
        android:layout_width="0dp"                  //这里设置为0是为了好计算,计算公式在下面介绍
        android:layout_height="wrap_content"
        android:layout_weight="0.5"                  //这里设置weight(权值)为0.5,也就是占用了一行的一半。
        android:text="hello "
        android:textSize="24sp"

         />
    <Button
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="0.4"                    //这里是0.4,就是40%,还有1-0.5-0.4=0.1为空白
        android:text="hello "
        android:textSize="24sp"
        />
</LinearLayout>

        显示结果:

        计算公式:  此实例中Button的宽度计算:{  Button的width值+Button的weight*父控件width(这里是match_content,

                              如果父控件为200dp,那么这里就是200)/ weightSum的值  }

         

      

时间: 2024-10-26 09:24:53

Android布局之线性布局——LinearLayout的相关文章

Android 自学之线性布局 LinearLayout

线性布局(LinearLayout),线性布局有点想AWT编程里面的FolwLayout,他们都会将容器里面的组件挨个的排列起来. 他们最大的区别在于:Android的线性布局不会换行:AWT里面的FolwLayout则会另起一行进行显示 LinearLayout支持常用XML属性及相关方法的说明 XML属性 相关方法 说明 android:gravity setGravity(int) 设置布局管理器内组件的对齐方式.该属性支持top,bottom,left,right--也可以同时制定多种对

android之网格布局和线性布局实现注册页面

(注意:1.再用weight的时候,各个组件要设置宽度为0dp,高度也要设置,2.即使没有设置weight,再用linear布局时,比如view和button都要设置宽度高度.3.如果出现运行错误,可以先检查哪个组件没设置高度) :values/strings.xml <?xml version="1.0" encoding="utf-8"?><resources> <string name="app_name"&g

Android:控件布局(线性布局)

android:orientation指定LinearLayout布局方向,值:vertical (垂直方向) .horizontal(水平方向) 实例一: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width=&quo

表格布局和线性布局

 XML: 一种是事件流(SAX)的解析和(DOM)文档解析. 步骤: (1):在新建项目的res/layout下的项目目录布局文件 main.xml 中进行修改 (2):表格布局管理器: <TableLayout 其中为行的布局:    <TableRow (3):线性布局管理器: <LinearLayout 线性布局是将放入其中的组件按照垂直或水平方向来布局.在线性布局中,每一行(针对垂直排序)或每一列(针对水平排序) 中只能放一个组件,并且android中的线性布局不会换行,当到达

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

.Net程序员玩转Android开发---(6)线性布局LinearLayout

             LinearLayout控件是Android中重要的布局控件,是一个线性控件,所谓线性控件的意思是指该控件里面的内容只能水平或垂直排列,也就是在一条直线上. 通过控件的属性可以控制该控件内的控件的位置以及大小.下面是放置了3个treeview控件的效果图,此LinearLayout控件的属性为垂直排列. 下面我们通过该控件的几个属性来了解下控件的用法 1.

.Net程序猿玩转Android开发---(6)线性布局LinearLayout

?????????????? ????????????? LinearLayout控件是Android中重要的布局控件,是一个线性控件,所谓线性控件的意思是指该控件里面的内容仅仅能水平或垂直排列.也就是在一条直线上. 通过控件的属性能够控制该控件内的控件的位置以及大小.以下是放置了3个treeview控件的效果图.此LinearLayout控件的属性为垂直排列. ???????? ?? 以下我们通过该控件的几个属性来了解下控件的使用方法 ??????? 1.Orientation属性 ?????

Android自学笔记之 Android五大布局之线性布局的功能、常用属性、用法

1.介绍: 线性布局管理器对存放其中的控件或布局采用线性方式管理 2.LinearLayout的常用属性 android:orientation = "vertical" -- 该属性决定它子类控件的排布方式(vertical:垂直:horizontal:水平) android:gravity = "center" -- 该属性决定它子类控件的xy的位置 常用属性值 center_vertical:垂直(Y轴)居中 center_horizontal:水平(X轴)居

Android之Linearlayouy线性布局

写了个小例子xml代码如下: 1 <?xml version="1.0" encoding="utf-8"?> 2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:app="http://schemas.android.com/apk/res-auto" 4 xmlns:tools="