Android布局之一——Linear Layout

来源:互联网 发布:2017年外贸数据 编辑:程序博客网 时间:2024/04/26 08:31

Android 布局是开发中非常重要的一个知识部分,它的布局分为以下几种:

Linear Layout:线性布局
Relative Layout:相对布局
Table Layout:表格布局
Grid View:网格布局
Tab Layout:选项卡布局
List View:列表布局


一、Linear Layout

简单来说,直着排,横着排都可以,还可以嵌套,此布局运用的非常多。下面直接上示例代码及截图:
image

接下来,看一下布局XML文件:

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

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

<LinearLayout android:orientation="horizontal"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:layout_weight="1">
<TextView android:text="red" android:gravity="center_horizontal"
android:background="#aa0000" android:layout_width="wrap_content"
android:layout_height="fill_parent" android:layout_weight="1" />
<TextView android:text="green" android:gravity="center_horizontal"
android:background="#00aa00" android:layout_width="wrap_content"
android:layout_height="fill_parent" android:layout_weight="1" />
<TextView android:text="blue" android:gravity="center_horizontal"
android:background="#0000aa" android:layout_width="wrap_content"
android:layout_height="fill_parent" android:layout_weight="1" />
<TextView android:text="yellow" android:gravity="center_horizontal"
android:background="#aaaa00" android:layout_width="wrap_content"
android:layout_height="fill_parent" android:layout_weight="1" />
</LinearLayout>

<LinearLayout android:orientation="vertical"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:layout_weight="1">
<TextView android:text="row one" android:textSize="15pt"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_weight="1" />
<TextView android:text="row two" android:textSize="15pt"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_weight="1" />
<TextView android:text="row three" android:textSize="15pt"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_weight="1" />
<TextView android:text="row four" android:textSize="15pt"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_weight="1" />
</LinearLayout>

</LinearLayout>

下面详细详解这些配置的含义:

LinearLayout 标签的常用属性
android:orientation="horizontal":定义方向水平或垂直(horizontal/vertical
android:layout_width="fill_parent" :宽度填充满父控件的宽度
android:layout_height="fill_parent":宽度填充满父控件的高度
android:layout_weight="1":重量?可解释为权重,这是个什么意思呢,请看下图

image

我将这里的配置变了一下,

<LinearLayout android:orientation="horizontal"
        android:layout_width="fill_parent" android:layout_height="fill_parent"
        android:layout_weight="1">
        <TextView android:text="red" android:gravity="center_horizontal"
            android:background="#aa0000" android:layout_width="wrap_content"
            android:layout_height="fill_parent" android:layout_weight="1" />
        <TextView android:text="green" android:gravity="center_horizontal"
            android:background="#00aa00" android:layout_width="wrap_content"
            android:layout_height="fill_parent" android:layout_weight="2" />
        <TextView android:text="blue" android:gravity="center_horizontal"
            android:background="#0000aa" android:layout_width="wrap_content"
            android:layout_height="fill_parent" android:layout_weight="3" />
        <TextView android:text="yellow" android:gravity="center_horizontal"
            android:background="#aaaa00" android:layout_width="wrap_content"
            android:layout_height="fill_parent" android:layout_weight="4" />
    </LinearLayout>

可以看到我设置成了1,2,3,4,这四TextView显示的宽度不一样了,具体是怎么算的,这个我们就不追究了,意思清楚就行,都设置为1则平分,否则数给的越大,占的位置就越多。

再看一下TextView的解释
<TextView android:text="red" android:gravity="center_horizontal"
            android:background="#aa0000" android:layout_width="wrap_content"
            android:layout_height="fill_parent" android:layout_weight="1" />

android:text="red":要显示的内容
android:gravity="center_horizontal":显示内容的对齐方式
android:background="#aa0000" :背景色
android:layout_width="wrap_content":宽度,包括自己的内容的宽度
android:layout_height="fill_parent":高度,填充父控件的高度
android:layout_weight="1":权重

其实含义如果懂些CSS属性的话,还是蛮好懂的,布局跟Div有点类似
//类似一个外层DIV,里面的内容垂直布局android:orientation="vertical"
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="fill_parent"
    android:layout_height="fill_parent"> 

    //类似第一个子DIV,内容水平布局android:orientation="horizontal"
    <LinearLayout android:orientation="horizontal"
        android:layout_width="fill_parent" android:layout_height="fill_parent"
        android:layout_weight="1"></LinearLayout>

     //类似第二个子DIV,内容垂直布局android:orientation="vertical"
    <LinearLayout android:orientation="vertical"
        android:layout_width="fill_parent" android:layout_height="fill_parent"
        android:layout_weight="1"></LinearLayout>

</LinearLayout>

先把大的框框画好,再在各个子框里面细画内容,这个布局蛮简单的。

原创粉丝点击