博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android中的六大布局
阅读量:5336 次
发布时间:2019-06-15

本文共 2663 字,大约阅读时间需要 8 分钟。

继承关系图:

布局XML文件中常用属性:

android:layout_width 宽度 
android:layout_height 高度
可能的取值为match_parent,wrap_content或者固定的像素值。
android:orientation 方向
可能的取值为 horizontal水平 vertical 垂直
android:gravity
用来确定View中的控件在View中的停靠位置。 
android:layout_gravity
用来确定View在其父控件中的停靠位置
android:padding
padding是控件中的内容相对控件的边缘的边距.
android:layout_margin
layout_margin是控件边缘相对父空间的边距

android:baselineAligned 

该属性设置为false,将会阻止该布局管理器与它的子元素的基线对齐

android:divider

设置垂直布局时两个组件之间的分隔条

一.LinearLayout线性布局

水平方向:

 

输出结果:

 

垂直方向:

 

输出结果:

二.FrameLayout单帧布局

 

输出结果:

三.RelativeLayout相对布局

android:layout_centerInParent

定义组件在父容器中间

android:layout_centerVertical

定义组件在父容器垂直居中

android:layout_centerHorizontal

定义组件在父容器水平居中

android:layout_alignParentBottom

定义组件与父容器下对齐

(上对齐,左对齐,右对齐略)

android:layout_above
定义在组件的上方
android:layout_below
定义在组件的下方
android:layout_toLeftOf
定义在组件的左边
android:layout_toRightOf
定义在组件的右边 

android:layout_alignTop

本元素的上边缘和某元素的的上边缘对齐
(下对齐,右对齐,左对齐略 ...)

 

输出结果:

 

四.TableLayout表格布局

 

输出结果:

 

五.GridLayout九宫格布局(Android4.0加入)

android:rowCount

定义总行数
android:columnCount
定义总列数

用一个计算器界面的例子来演示:

 

package com.light.study.android;import android.app.Activity;import android.os.Bundle;import android.view.Gravity;import android.widget.Button;import android.widget.GridLayout;public class MainActivity extends Activity {	GridLayout gridLayout;	// 定义16个按钮的文本	String[] chars = new String[]		{			"7" , "8" , "9" , "÷",			"4" , "5" , "6" , "×",			"1" , "2" , "3" , "-",			"." , "0" , "=" , "+"		};	@Override	public void onCreate(Bundle savedInstanceState)	{		super.onCreate(savedInstanceState);		setContentView(R.layout.activity_main);		gridLayout = (GridLayout) findViewById(R.id.root);		for(int i = 0 ; i < chars.length ; i++)		{			Button bn = new Button(this);			bn.setText(chars[i]);			// 设置该按钮的字体大小			bn.setTextSize(40);			// 指定该组件所在的行			GridLayout.Spec rowSpec = GridLayout.spec(i / 4 + 2);			// 指定该组件所在列			GridLayout.Spec columnSpec = GridLayout.spec(i % 4);			GridLayout.LayoutParams params = new GridLayout.LayoutParams(					rowSpec , columnSpec);			// 指定该组件占满父容器			params.setGravity(Gravity.FILL);					gridLayout.addView(bn , params);		}	}}

输出结果:

 

 

转载于:https://www.cnblogs.com/krislight1105/p/3748417.html

你可能感兴趣的文章
hdu 1207 四柱汉诺塔
查看>>
Vue 2.x + Webpack 3.x + Nodejs 多页面项目框架(上篇——纯前端多页面)
查看>>
display:none与visible:hidden的区别
查看>>
我的PHP学习之路
查看>>
【题解】luogu p2340 奶牛会展
查看>>
对PostgreSQL的 SPI_prepare 的理解。
查看>>
解决响应式布局下兼容性的问题
查看>>
京东静态网页练习记录
查看>>
使用DBCP连接池对连接进行管理
查看>>
【洛谷】【堆+模拟】P2278 操作系统
查看>>
hdu3307 欧拉函数
查看>>
Spring Bean InitializingBean和DisposableBean实例
查看>>
Solr4.8.0源码分析(5)之查询流程分析总述
查看>>
[Windows Server]安装系统显示“缺少计算机所需的介质驱动程序”解决方案
查看>>
[容斥][dp][快速幂] Jzoj P5862 孤独
查看>>
Lucene 学习之二:数值类型的索引和范围查询分析
查看>>
软件开发工作模型
查看>>
Java基础之字符串匹配大全
查看>>
面向对象
查看>>
lintcode83- Single Number II- midium
查看>>