有哪些布局类型?
Android系统中为我们提供的五大布局:LinearLayout(线性布局)、FrameLayout(单帧布局)、AbsoluteLayout(绝对布局)、TablelLayout(表格布局)、RelativeLayout(相对布局)。其中最常用的的是LinearLayout、TablelLayout和RelativeLayout。这些布局都可以嵌套使用。
LinearLayout(线性布局)
线性布局是按照水平或垂直的顺序将子元素(可以是控件或布局)依次按照顺序排列,每一个元素都位于前面一个元素之后。线性布局分为两种:水平方向和垂直方向的布局。分别通过属性android:orientation=”vertical” 和 android:orientation=”horizontal”来设置。
案例代码分析:
线性布局是用
layout_width/layout_height:设置宽度和高度,其值有:wrap_content(适配内容大小),match_parent(适配父容器大小),此两个属性在各个控件中为通用属性
id:唯一标识该控件值
orientation:设置该布局是水平布局(horizontal)还是纵向布局(vertical)
gravity:设置控件的对齐方式,常用值:center_vertical(纵向居中)|center_horizontal(水平居中)
在
text:设置按钮文字,这里有两种方式,一种是直接硬编码,即直接写内容,例如:
android:text="按钮"
第二种方式是非硬编码方式,是通过配置strings.xml文件来配置,例如:
按钮
然后,通过:
android:text="@string/btnText"
引用。
页面跳转的方式:
Intent intent = new Intent(); intent.setClass(MainActivity.this,LinearActivity.class); startActivity(intent);
TableLayout(表格布局)
表格布局与常见的表格类似,以行、列的形式来管理放入其中的UI组件。表格布局使用
TableLayout跟TableRow 是一组搭配应用的布局,TableLayout置底,TableRow在TableLayout的上方,而Button、TextView等控件就在TableRow之上.TableLayout是一个应用错杂的布局,最简单的用法就仅仅是拖沓控件做出个界面,但实际上,会经常在代码里应用TableLayout,例如做出表格的结果。
重要的几个属性如下:
android:collapseColumns="1,3" 隐藏第二列和第4列的控件 android:stretchColumns="0,2,4" 第一列和三列以及第五列的空白textview被拉伸 android:shrinkColumns="1,3" 第二列和第4列的控件被收缩
案例代码:
FrameLayout(帧布局)
帧布局被设计成在一个屏幕区域显示一个单一的项(single item)。通常FrameLayout显示一个单一的子控件,它支持的布局属性不够丰富,一般通过layout_gravity来设置子控件的位置。
FrameLayout的子控件被绘制在一个堆栈中,最近添加进来的子控件在堆栈的顶部。
案例代码:
RelativeLayout(相对布局)
相对布局,子控件的位置关系可以通过子控件与父控件、子控件与子控件来确定,子控件之间位置可以重叠,后面的控件会盖在前面控件之上,拓展性好,灵活方便,是使用最多的布局方式。
案例代码:
相对布局使用
android:layout_toLeftOf=”@+id/name” 指定控件的左边
android:layout_toRightOf=”@+id/name” 指定控件的右边
android:layout_above=”@+id/name” 指定控件的上边
android:layout_below=”@+id/name” 指定控件的下边
ndroid:layout_alignLeft=”@+id/name” 与指定控件左对齐
android:layout_alignRight=”@+id/name” 与指定控件右对齐
android:layout_alignTop=”@+id/name” 与指定控件顶部对齐
android:layout_alignBottom=”@+id/name” 与指定控件底部对齐
android:layout_alignParentLeft=”true” 与父控件的左边对齐
android:layout_alignParentRight=”true” 与父控件的右边对齐
android:layout_alignParentTop=”true” 与父控件顶部对齐
android:layout_alignParentBottom=”true” 与父控件底部对齐
android:layout_centerHorizontal=”true” 在父控件中水平居中
android:layout_centerVertical=”true” 在父控件中垂直居中
android_layout_centerInParent=”true” 在父控件中中部居中
AbsoluteLayout(绝对布局)
绝对布局,子控件的位置以绝对的位置定位,子控件之间可以重叠,相对于其他布局,缺少灵活性,在最新的android版本中已经不建议使用。
总结
在android布局控制中,最常用的是线性布局和相对布局,往往它们通常是配合使用,也就是嵌套使用。
关于layout_gravity与gravity的区别
从名字上可以看到,android:gravity是对元素本身说的,元素本身的文本显示在什么地方靠着换个属性设置,不过不设置默认是在左侧的。
android:layout_gravity是相对与它的父元素说的,说明元素显示在父元素的什么位置。
比如说button: android:layout_gravity 表示按钮在界面上的位置。 android:gravity表示button上的字在button上的位置。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 ZLME@ZLME.COM 举报,一经查实,立刻删除。