Android_布局
来源:互联网 发布:淘宝评论在哪里写 编辑:程序博客网 时间:2024/06/05 12:46
今天来分享一下安卓开发布局中的四种布局:线性布局、表格布局、网格布局以及帧布局。
先来说说线性布局(Linerlayout):
线性布局的特点是:各个子元素彼此连接,中间不留空白线性布局是程序中最常见的一种布局方式,线性布局可以分为水平线性布局和垂直线性布局两种,通过Android:orientation属性可以设置线性布局的方向。
线性布局中,有 几个及其重要的参数,直接决定元素的布局和位置,这几个参数是
android:layout_gravity ( 是本元素相对于父元素的对齐方式 )
android:gravity="bottom|right"(是本元素所有子元素的对齐方式,设置在父元素上,多个值用|隔开)
android:layout_gravity (子元素在父元素的对齐方式,设置在子元素上)
当 android:orientation="vertical" 时, 只有水平方向的设置才起作用,垂直方向的设置不起作用。即:left,right,center_horizontal 是生效的。
当 android:orientation="horizontal" 时, 只有垂直方向的设置才起作用,水平方向的设置不起作用。即:top,bottom,center_vertical 是生效的。
android:padding="10dp" (是本元素所有子元素的与父元素边缘的距离,设置在父元素上)
android:layout_marginLeft="10dp"(子元素与父元素边缘的距离,设置在子元素上)
android:orientation (线性布局以列或行来显示内部子元素)
android:layout_weight ="1"(线性布局内子元素对未占用空间【水平或垂直】分配权重值,其值越小,权重越大。
前提是子元素 设置了 android:layout_width = "fill_parent" 属性(水平方向)或 android:layout_height = "fill_parent" 属性(垂直方向)如果某个子元素的 android:layout_width = "wrap_content" 或 android:layout_height =" wrap_content” ,则 android:layout_weight 的设置值 对该方向上空间的分配刚好相反。
表格布局(Tablelayout):
表格布局模型以行列的形式管理子控件,每一行为一个TableRow的对象,当然也可以是一个View的对象。TableRow可以添加子控件,每添加一个为一列。
TableLayout属性:
android:collapseColumns:将TableLayout里面指定的列隐藏,若有多列需要隐藏,请用逗号将需要隐藏的列序号隔开。
android:stretchColumns:设置指定的列为可伸展的列,以填满剩下的多余空白空间,若有多列需要设置为可伸展,请用逗号将需要伸展的列序号隔开。
android:shrinkColumns:设置指定的列为可收缩的列。当可收缩的列太宽(内容过多)不会被挤出屏幕。当需要设置多列为可收缩时,将列序号用逗号隔开。
列元素(Button)属性:(奇怪的是button 里面没有android:layout_column 和android:layout_span两个属性,写进去无反应,还不知道为什么)
android:layout_colum:设置该控件在TableRow中指定的列。
android:layout_span:设置该控件所跨越的列数。
网格布局(Gridlayout):
①跟LinearLayout(线性布局)一样,他可以设置容器中组件的对齐方式
②容器中的组件可以跨多行也可以跨多列(相比TableLayout直接放组件,占一行相比较)
常用属性:
排列对齐:
①设置组件的排列方式: android:orientation="" vertical(竖直,默认)或者horizontal(水平)
②设置组件的对齐方式: android:layout_gravity="" center,left,right,buttom啊,这些,如果想同时用两种的话:eg: buttom|left
设置布局为几行几列:
①设置有多少行: android:rowCount="4" //设置网格布局有4行
②设置有多少列: android:columnCount="4" //设置网格布局有4列
设置某个组件位于几行几列
注:都是从0开始算的哦!
①组件在第几行: android:layout_row = "1" //设置组件位于第二行
②组件在第几列: android:layout_column = "2" //设置该组件位于第三列
设置某个组件横跨几行几列:
①横跨几行: android:layout_rowSpan = "2" //纵向横跨2行
②横跨几列: android:layout_columnSpan = "3" //横向横跨2列
帧布局:
FrameLayout(帧布局)可以说是六大布局中最为简单的一个布局,这个布局直接在屏幕上开辟出一块空白的区域,当我们往里面添加控件的时候,会默认把他们放到这块区域的左上角,而这种布局方式却没有任何的定位方式,所以它应用的场景并不多;帧布局的大小由控件中最大的子控件决定,如果控件的大小一样大的话,那么同一时刻就只能看到最上面的那个组件!后续添加的控件会覆盖前一个!虽然默认会将控件放置在左上角,但是我们也可以通过layout_gravity属性,指定到其他的位置!
常用属性
FrameLayout的属性很少就两个,但是在说之前我们先介绍一个东西:
前景图像:永远处于帧布局最上面,直接面对用户的图像,就是不会被覆盖的图片。
两个属性:
- android:foreground:*设置改帧布局容器的前景图像
- android:foregroundGravity:设置前景图像显示的位置
- Android_布局
- Android_布局
- android_布局
- android_布局属性大全
- Android_布局优化
- Android_布局2
- Android_布局文件的名称
- Android_布局_文章列表
- Android_基本五大布局
- android_基础_布局-动态布局
- Android_相对布局的相关属性RalativeLayout
- android_三层布局时遇见的问题
- Android_按比例布局layout_weight和weightSum
- Android_学习笔记01_布局
- android_线性布局_相对布局的方法汇总
- android_新浪微博布局学习——妙用TabHost
- android_应用开发之(优化布局层次结构)
- android_应用开发之(使用<include>标签重用布局)
- react-router
- Android中view的测量过程中,很重要的也很难理解的一个东西MeasureSpec
- 欢迎使用CSDN-markdown编辑器
- 软件姿态解算
- Kotlin学习篇(1)
- Android_布局
- PHP培训多少钱
- SpringMVC处理请求流程
- Python高级编程-深拷贝与浅拷贝
- Java中关于返回引用可变对象常见问题剖析
- 遇见JSP
- ACM:L: 素数槽
- JAVA SE
- 安卓布局