Android中常见五种布局管理器 |
您所在的位置:网站首页 › gridlayout是什么 › Android中常见五种布局管理器 |
目录 布局管理器 RelativeLayout 常见属性 Relative的实践操作(实现软件更新界面) LinearLayout 常见属性 LinearLayout的实践操作(模范登录以及微信底部) FrameLayout 常用属性 FrameLayout实例 TableLayout 常用属性(继承LinearLayout) TableLayout实例(计算器·的实例) GridLayout 常用属性 GridLayout实例 网格布局管理器和表格布局管理器的区别: 布局管理器Android提供五种布局管理器: 1.相对布局管理器(RelativeLayout):通过相对定位的方式来控制组件的摆放位置。 2.线性布局管理器(LinearLayout):是指在水平或者垂直方向上依次摆放组件。 3.帧布局管理器(FrameLayout):没有任何定位方式,默认情况下,所有的组件都会摆放在容器的左上角,逐个覆盖。 4.表格布局管理器(TableLayout):使用表格的方式按行、列来摆放组件。 5.绝对布局管理器(AbsoluteLayout):通过绝对定位(x,y坐标)的方式来控制组件的摆放位置。(过期) 6.网格布局管理器(GridLayout):通过它可以实现跨行和跨列摆放组件。 Android提供的布局管理器均直接或间接地继承ViewGroup类。 说明: 在Android中,无论是创建哪一种布局都有两种方法,一种是在XML布局文件当中定义,另一种是使用Java代码来创建。推荐使用XML布局文件中定义。 RelativeLayout 常见属性android:layout_above="@id/xxx" --将控件置于给定ID控件之上 android:layout_below="@id/xxx" --将控件置于给定ID控件之下 android:layout_toLeftOf="@id/xxx" --将控件的右边缘和给定ID控件的左边缘对齐 android:layout_toRightOf="@id/xxx" --将控件的左边缘和给定ID控件的右边缘对齐 android:layout_alignLeft="@id/xxx" --将控件的左边缘和给定ID控件的左边缘对齐 android:layout_alignTop="@id/xxx" --将控件的上边缘和给定ID控件的上边缘对齐 android:layout_alignRight="@id/xxx" --将控件的右边缘和给定ID控件的右边缘对齐 android:layout_alignBottom="@id/xxx" --将控件的底边缘和给定ID控件的底边缘对齐 android:layout_alignParentLeft="true" --将控件的左边缘和父控件的左边缘对齐 android:layout_alignParentTop="true" --将控件的上边缘和父控件的上边缘对齐 android:layout_alignParentRight="true" --将控件的右边缘和父控件的右边缘对齐 android:layout_alignParentBottom="true" --将控件的底边缘和父控件的底边缘对齐 android:layout_centerInParent="true" --将控件置于父控件的中心位置 android:layout_centerHorizontal="true" --将控件置于水平方向的中心位置 android:layout_centerVertical="true" --将控件置于垂直方向的中心位置 Relative的实践操作(实现软件更新界面) LinearLayout 常见属性 1.layout_gravity 设置布局中控件的位置 top 上 bottom 下 left 左 right 右 center_vertical 垂直居中 center_horizontal 水平居中 center 居中 2.weight(权重)属性 用来设置占布局所占布局得的比重 (1)layout_width都为0时 按照所设置的比重来分配权重 比如:三个控件 1 2 3 weight分比为1、2、3 layout_width = "0dp" 则会将屏幕的大小分为1+2+3=6份 三个控件分别占布局的1/6 2/6 3/6 (2)layout_width都为warp_content时 这种情况下和上边的情况一样 (3)layout_width为match_parent时是最复杂的一种情况 因为此时控件所占的所有宽度大于容器的宽度 此时要计算每个空间所占的比例 计算公式: 额外的空间=手机的宽度(高度)-所有控件的宽度(高度) 控件的宽度(高度)=控件的width(height)值+(该控件的weight值/所有控件的weight的和)×额外的空间 以上边的情况为例子: 设 match_parent为x 额外空间 = x - 3x = -2x 控件1宽度 = x+ 1/6*(-2x) = 4/6x =1/3x 所以控件1占屏幕的1/3 3.添加分割线 (1)通过view添加 (2)通过背景图片添加 android:divider="@drawable/ktv_line_div" android:showDividers="middle" android:dividerPadding="10dp" 1)android:divider设置作为分割线的图片 2)android:showDividers设置分割线的位置,none(无), begining(开始),end(结束),middle(每两个组件间) 3)dividerPadding设置分割线的Padding LinearLayout的实践操作(模范登录以及微信底部) FrameLayout 常用属性 1.android:foreground :设置该帧布局管理器的前景图像。 2.android:foregroundGravity:定义绘制前景图像的gravity属性,即前景图像显示的位置。 FrameLayout实例 TableLayout 常用属性(继承LinearLayout) 1.android:collapseColumns:将TableLayout里面指定的列隐藏,若有多列需要隐藏,请用逗号将需要隐藏的列序号隔开。 2.android:stretchColumns:设置指定的列为可伸展的列,以填满剩下的多余空白空间,若有多列需要设置为可伸展,请用逗号将需要伸展的列序号隔开。 3.android:shrinkColumns:设置指定的列为可收缩的列。当可收缩的列太宽(内容过多)不会被挤出屏幕。当需要设置多列为可收缩时,将列序号用逗号隔开。 TableLayout实例(计算器·的实例)
GridLayout 常用属性 1.android:columnCount: 最大列数 2.android:rowCount:最大行数 3.android:orientation: GridLayout中子元素的布局方向 4.android:alignmentMode alignBounds:对齐子视图边界 alignMargins :对齐子视距内容,默认值 5.android:columnOrderPreserved: 使列边界显示的顺序和列索引的顺序相同,默认是true 6.android:rowOrderPreserved: 使行边界显示的顺序和行索引的顺序相同,默认是true 7.android:useDefaultMargins: 没有指定视图的布局参数时使用默认的边距,默认值是false GridLayout实例 网格布局管理器和表格布局管理器的区别: 1.网格布局管理器可以跨行或者跨列,但是表格布局管理器只能和跨行。 2.网格布局管理器可以实现一行占满后超出容器的组件将自动换行,而表格布局管理器超出容器的组件将不会被显示。
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |