android开发_ViewGroup(组视图)-- 五大布局
view组--ViewGroup(组视图)
ViewGroup的作用:在view中添加子控件。ViewGroup的5个子类,就是五大布局:
(1) LinearLayout 线性布局(常用)
(2) RelativeLayout 相对布局(常用)
(3) FrameLayout 帧布局
(4) AbsoluteLayout 绝对布局
(5) TableLayout 表格布局
1 LinearLayout 线性布局:在该布局下包含的子布局列表为 横向 或 纵向 排布
1.1 LinearLayout 默认是横向布局,即:从左到右 布局控件
指定布局方向: android:orientation=“ ”
1 <!-- 指定布局方向的属 性:orientation,
2 属性值:horizontal(横向)
3 vertical(纵向)
4 -->
5
6 <!--横向布局-->
7 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
8 android:layout_width="match_parent"
9 android:layout_height="match_parent"
10 android:orientation="horizontal" >
11
12 <!--纵向布局-->
13 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
14 android:layout_width="match_parent"
15 android:layout_height="match_parent"
16 android:orientation="vertical" >
1.2 权重(只有在子控件中才有的属性)
android:layout_weight=" "
例1:没添加权重属性之前:
1 <?xml version="1.0" encoding="utf-8"?>
2
3 <!-- 指定布局方向的属相为:orientation,属性值:horizontal(横向)或vertical(纵向) -->
4 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
5 android:layout_width="match_parent"
6 android:layout_height="match_parent"
7 android:orientation="horizontal" >
8
9 <TextView
10 android:id="@+id/textView1"
11 android:layout_width="wrap_content"
12 android:layout_height="wrap_content"
13 android:text="TextView" />
14
15 <TextView
16 android:id="@+id/textView2"
17 android:layout_width="wrap_content"
18 android:layout_height="wrap_content"
19 android:text="TextView" />
20
21 <TextView
22 android:id="@+id/textView3"
23 android:layout_width="wrap_content"
24 android:layout_height="wrap_content"
25 android:text="TextView" />
26
27 </LinearLayout>

添加权重属性 android:layout_weight=" " 之后
1 <?xml version="1.0" encoding="utf-8"?>
2
3 <!-- 指定布局方向的属相为:orientation,属性值:horizontal(横向)或vertical(纵向) -->
4 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
5 android:layout_width="match_parent"
6 android:layout_height="match_parent"
7 android:orientation="horizontal" >
8
9 <TextView
10 android:id="@+id/textView1"
11 android:layout_width="wrap_content"
12 android:layout_height="wrap_content"
13 android:layout_weight="1"
14 android:text="TextView" />
15
16 <TextView
17 android:id="@+id/textView2"
18 android:layout_width="wrap_content"
19 android:layout_height="wrap_content"
20 android:layout_weight="1"
21 android:text="TextView" />
22
23 <TextView
24 android:id="@+id/textView3"
25 android:layout_width="wrap_content"
26 android:layout_height="wrap_content"
27 android:layout_weight="1"
28 android:text="TextView" />
29
30 </LinearLayout>

纵向布局同理。
例2:实现下面布局

颜色值忽略
<?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="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:background="#F00"> <View
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="#F00"
/>
<View
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="#0F0"
/>
<View
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="#00F"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="vertical" >
<View
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:background="#F00"
/>
<View
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:background="#0F0"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:background="#00F">
<View
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="#F00"
/>
<View
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="#0F0"
/>
<View
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:background="#00F"
/>
</LinearLayout> </LinearLayout>
2 RelativeLayout 相对布局:
2.1相对父控件布局
(1) android:layout_centerHorizontal 横向居中
(2) android:layout_centerVertical 纵向居中
(3) android:layout_centerInParent 横向纵向居中
跟父控件最左边/最右边/顶部/底部对齐
(1) android:layout_alignParentLeft
(2) android:layout_alignParentRight
(3) android:layout_alignParentTop
(4) android:layout_alignParentBottom
2.1.1位置默认在左上角
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<!--如果没有位置属性,按钮在左上角 --> <Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="最左上角" />
</RelativeLayout>

2.1.2属性:android:layout_centerHorizontal="true" 横向中间
android:layout_centerVertical="true" 纵向中间
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" > <Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:text="两种属性定位到中间" /> </RelativeLayout>

2.1.3属性:android:layout_centerInParent="true" 父窗体中间
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="一种属性定位到中间" />
</RelativeLayout>

2.1.4属性:android:layout_alignParentLeft="true" 对齐到父窗口的左面,其中align是“对齐”的意思
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<Button
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:text="最左面" /> </RelativeLayout>

2.1.5属性:android:layout_alignParentRight="true" 对齐到父窗口的右面,其中align是“对齐”的意思
1 <?xml version="1.0" encoding="utf-8"?>
2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 android:layout_width="match_parent"
4 android:layout_height="match_parent" >
5 <Button
6 android:layout_width="wrap_content"
7 android:layout_height="match_parent"
8 android:layout_alignParentRight ="true"
9 android:text="最右面" />
10
11 </RelativeLayout>

2.1.6属性:android:layout_alignParentTop="true" 对齐到父窗口的右面,其中align是“对齐”的意思
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:text="最上面" />
</RelativeLayout>
2.1.7属性:android:layout_alignParentBottom="true" 对齐到父窗口的右面,其中align是“对齐”的意思
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:text="最下面" /> </RelativeLayout>

2.2相对于同等级的控件进行布局
针对已存在的兄弟控件(在某个控件的左边/右边/上面/下面)
(1)android:layout_toLeftOf
(2)android:layout_toRightOf
(3)android:layout_above
(4)android:layout_below
相对于兄弟控件的边对齐
(1)android:layout_alignTop
(2)android:layout_alignBottom
(3) android:layout_alignLeft
(4)android:layout_alignRight
上述属性的值为@id/相对控件的id。如:android:layout_above="@id/center_btn"
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<Button
android:id="@+id/center_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="中间"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@id/center_btn"
android:layout_alignLeft="@id/center_btn"
android:text="相对"/>
/> </RelativeLayout>

3 FrameLayout 帧布局:越写在后面的控件,越展示最前面(最上层)
4 AbsoluteLayout 绝对布局:

5 TableLayout 表格布局:就是一个表格(应用场景:银行表格)
<TableLayout><TableLayout/>表格标签
<TableRow><TableRow/> 行标签

上面代码只给出了身份证那一行的代码

android开发_ViewGroup(组视图)-- 五大布局的更多相关文章
- Android开发之详解五大布局
http://bbs.chinaunix.net/thread-3654213-1-1.html 为了适应各式各样的界面风格,Android系统提供了5种布局,这5种布局分别是: LinearLayo ...
- Android开发之玩转FlexboxLayout布局
在这之前,我曾认真的研究过鸿洋大神的Android 自定义ViewGroup 实战篇 -> 实现FlowLayout,按照大神的思路写出了一个流式布局,所有的东西都是难者不会会者不难,当自己能自 ...
- Android开发之自定义视图
继承View 1.重写onMeasure(int wMeasureSpec,int hMeasureSpec)处理程序,这样可以标明视图尺寸 2.重写onDraw,以便绘制我们自己的自定义视图内 3. ...
- android开发------编写用户界面之相对布局
今天要说的是RelativeLayout.RelativeLayout相对于LinearLayout的主要不同点在于它需要一个参照物. 我们先来看一下官方对这个布局的解释: RelativeLayou ...
- android开发------编写用户界面之线性布局(补充知识)
在前面的文章中 http://www.cnblogs.com/ai-developers/p/android_linearlayout.html 我们看到了布局中有这样一个属性: layout_wei ...
- android开发------编写用户界面之线性布局
一个好的应用程序离不开人性化的用户界面.在学习其他东西之前.理应先学习编写程序的布局(外观) 今天,我们就来学习android的UI布局----LinearLayout. LinearLayout,即 ...
- Android开发:组播(多播)与广播
近期由于需要编写能够使同一局域网中的Android客户端与PC端进行自动匹配通信功能的程序,学习并试验了JAVA组播与广播的内容,记录一些理解如下: 一.组播(多播) 背景知识:组播使用UDP对一定范 ...
- android 开发 RecyclerView 横排列列表布局
1.写一个一竖的自定义布局: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xml ...
- Android 开发日常积累
Android 集合 Android 开源项目分类汇总 扔物线的 HenCoder 高级 Android 教程 hencoder HenCoder:给高级 Android 工程师的进阶手册 Andro ...
随机推荐
- jmeter数据库连接配置
一.实际试过的mysql配置 1.导入一个JDBC jar包(我是直接把jar包放在了jmeter的lib目录),包:mysql-connector-java-5.1.7-bin.jar 2.设置JD ...
- centos7中安装mysql5.6版本 + 主从复制
centos安装5.6版本:CentOS7下使用YUM安装MySQL5.6 主从复制:Mysql主从复制与读写分离原理及配置教程 主从复制问题及配置 卸载和安装5.7版本:CentOS 7 安装与卸载 ...
- Java面试题和解答(三)
1.这段代码大多数情况下运行正常,但是某些情况下会出问题.什么时候会出现什么问题?如何修正? public class MyStack { private List<String> lis ...
- js篇-数组合并其中属性值相同的项目且属性值相加
项目背景是:var a = [{id:1,num:"12"},{id:2,num:"13"},{id:3,num:"3"},{id:2,nu ...
- [js]d3.js绘制拓扑树
echart也支持拓扑树了 所需的json数据格式: children嵌套 vis.js也支持绘制拓扑树 数据格式: nodes: {id, label, title} edges: {from, t ...
- pwn学习日记Day2 基础知识积累
知识杂项 shell-storm.org的shellcode数据库 使用pwntools库把shellcode作为输入传递给程序,尝试使用io.interactive()与程序进行交互,发现可以执行s ...
- How to Preloading content with rel preload
The preload value of the <link> element's rel attribute allows you to write declarative fetch ...
- G面经Prepare: Print Zigzag Matrix
For instance, give row = 4, col = 5, print matrix in zigzag order like: [1, 8, 9, 16, 17] [2, 7, 10, ...
- mongodb和python交互
一.安装pymongo包 sudo pip install pymongo 二.新增数据: 增加一条: from pymongo import MongoClient client = MongoCl ...
- 怎么让微信下载APK文件包,微信内置浏览器无法打开APP下载链接的解决方案
** 做微信营销活动或者APK下载推广时候,域名被经常被封,做到微信中正常使用呢?这就要借助一些工具来实现有效的操作.** 先来认识一下微信屏蔽的原理.按原理逐个攻破,本人做防封一年来自认为得心应手, ...
