文档章节

Android 布局详解 -一线性布局以及重要属性

-天蓬元帅-
 -天蓬元帅-
发布于 2013/12/15 11:22
字数 890
阅读 790
收藏 2

Android 布局详解

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

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

        如下图:

一、Linear Layout

简单来说,直着排,横着排都可以,还可以嵌套,此布局运用的非常多。

  • android:orientation      定义布局内的方向水平或垂直(horizontal/vertical  
  • android:layout_weight  子元素对未占用空间【水平或垂直】分配权重值,其值越小,权重越大。 
  • android:layout_width -  宽(1.fill_parent: 父元素决定,2.wrap_content: 本身的内容决定
  • android:layout_height - 高(3.高直接指定一个 px 值
  • android:gravity -          内容的排列形式(常用 top, bottom, left, right, center,Left|center_


下面直接上示例代码及截图: 


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:orientation="horizontal" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:background="#aa0000"
            android:gravity="center_horizontal"
            android:text="red" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:background="#00aa00"
            android:gravity="center_horizontal"
            android:text="green" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:background="#0000aa"
            android:gravity="center_horizontal"
            android:text="blue" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_weight="1"
            android:background="#aaaa00"
            android:gravity="center_horizontal"
            android:text="yellow" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:orientation="vertical" >

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="row one"
            android:textSize="15pt" />

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="row two"
            android:textSize="15pt" />

        <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="row three"
            android:textSize="15pt" />

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

</LinearLayout>



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

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


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

<LinearLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="1"
    android:orientation="horizontal" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:background="#aa0000"
        android:gravity="center_horizontal"
        android:text="red" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="2"
        android:background="#00aa00"
        android:gravity="center_horizontal"
        android:text="green" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="3"
        android:background="#0000aa"
        android:gravity="center_horizontal"
        android:text="blue" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:layout_weight="4"
        android:background="#aaaa00"
        android:gravity="center_horizontal"
        android:text="yellow" />

</LinearLayout>



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

再看一下TextView的解释

<TextView
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:layout_weight="1"
    android:background="#aa0000"
    android:gravity="center_horizontal"
    android:text="red" />



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:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    
    //类似第一个子DIV,内容水平布局android:orientation="horizontal" 
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:orientation="horizontal" >
    </LinearLayout>
    
     //类似第二个子DIV,内容垂直布局android:orientation="vertical" 
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:orientation="vertical" >
    </LinearLayout>
    
</LinearLayout>



© 著作权归作者所有

共有 人打赏支持
-天蓬元帅-
粉丝 2
博文 10
码字总数 10576
作品 0
嘉定
私信 提问
Android 第八课——UI布局2

Android布局分为:线性布局、相对布局、表格布局、帧布局、网格布局五种 1)FrameLayout(帧布局) 帧布局是最简单的布局对象,它被定制为用户屏幕上的一个空白备用区域,之后用户可以在其中...

learn_more
2015/01/04
0
0
Android界面布局的几种常用方式

现在Android非常疯狂,所以网上关于Android学习的资料如雨后春笋般冒起来,像这些基础的东西更是多如牛毛,我会把用过的东西碰到的困难和怎么解决的记录下来,一来可以供自己复习万一以后又碰...

长平狐
2012/06/18
1K
0
Android 布局详解 -二相对布局(Relative Layout)以及重要属性

二Relative Layout Relative Layout布局:相对位置布局,的几个重要属性   第一类 : 属性值为 true 或 false   android:layout_centerHrizontal 水平居中   android:layout_centerVert...

-天蓬元帅-
2013/12/15
0
0
一起学Android之Layout

本文简述在Android开发中布局的简单应用,属于基础知识,仅供学习分享使用。 概述 在Android UI开发中,布局类型主要有两种:LinearLayout(线性布局)和RelativeLayout(相对布局),两种布局类...

Alan.hsiang
12/14
0
0
Android 的几种布局方式及实践

我们对Android应用程序运行原理及布局文件可谓有了比较深刻的认识和理解,并且用“Hello World!”程序来实践证明了。在继续深入Android开发之旅之前,有必要解决前两篇中没有介绍的遗留问题...

sumpower
2014/02/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

js垃圾回收机制和引起内存泄漏的操作

JS的垃圾回收机制了解吗? Js具有自动垃圾回收机制。垃圾收集器会按照固定的时间间隔周期性的执行。 JS中最常见的垃圾回收方式是标记清除。 工作原理:是当变量进入环境时,将这个变量标记为“...

Jack088
昨天
10
0
大数据教程(10.1)倒排索引建立

前面博主介绍了sql中join功能的大数据实现,本节将继续为小伙伴们分享倒排索引的建立。 一、需求 在很多项目中,我们需要对我们的文档建立索引(如:论坛帖子);我们需要记录某个词在各个文...

em_aaron
昨天
13
0
"errcode": 41001, "errmsg": "access_token missing hint: [w.ILza05728877!]"

Postman获取微信小程序码的时候报错, errcode: 41001, errmsg: access_token missing hint 查看小程序开发api指南,原来access_token是直接当作parameter的(写在url之后),scene参数一定要...

两广总督bogang
昨天
18
0
MYSQL索引

索引的作用 索引类似书籍目录,查找数据,先查找目录,定位页码 性能影响 索引能大大减少查询数据时需要扫描的数据量,提高查询速度, 避免排序和使用临时表 将随机I/O变顺序I/O 降低写速度,占用磁...

关元
昨天
11
0
撬动世界的支点——《引爆点》读书笔记2900字优秀范文

撬动世界的支点——《引爆点》读书笔记2900字优秀范文: 作者:挽弓如月。因为加入火种协会的读书活动,最近我连续阅读了两本论述流行的大作,格拉德威尔的《引爆点》和乔纳伯杰的《疯传》。...

原创小博客
昨天
30
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部