前面文章有讲过Android布局中常用的线性布局和相对布局,这里学习另外三种不常用布局帧布局、表格布局、网格布局
帧布局
如上图类似这种布局就是帧布局,后面的子元素直接覆盖在前面的子元素之上,将前面的子元素部分和全部遮挡
常用属性
android:layout_gravity="center"//控件重力 android:gravity="center"//控件内容相对于控件本身的位置 android:foreground="@mipmap/bg"//前景 android:foregroundGravity="center_vetical"//前景重力
案例代码
<TextView android:layout_width="350dp" android:layout_height="350dp" android:background="#ff0000" android:layout_gravity="center"/> <TextView android:layout_width="200dp" android:layout_height="200dp" android:background="#00ff00" android:layout_gravity="center" /> <TextView android:layout_width="100dp" android:layout_height="100dp" android:background="#0000ff" android:layout_gravity="center" android:text="测试内容" android:textColor="#ffffff" android:gravity="center" />
效果
表格布局
通过行列的形式展示我们的控件,这样的布局就是表格布局
常见属性
android:stretchColumns="*"//设置可伸展的列,传入的是整型数据,即列的索引,*代表所有,也可多个比如1,2 android:shrinkColumns="1"//可伸缩的列 android:collapseColumns="2,3"//隐藏的列
案例代码
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:stretchColumns="*" > <!-- 1.直接在Tablelayout中添加控件,默认控件和父容器等宽,要让一些控件出现在同一行,把这些控件放在TableRow 里面,宽度默认是内容宽度 --> <EditText/> <TableRow> <Button android:text="7" /> <Button android:text="8" /> <Button android:text="9" /> <Button android:text="/" /> </TableRow> <TableRow> <Button android:text="4" /> <Button android:text="5" /> <Button android:text="6" /> <Button android:text="-" /> </TableRow> <TableRow> <Button android:text="1" /> <Button android:text="2" /> <Button android:text="3" /> <Button android:text="+" /> </TableRow> <TableRow> <Button android:text="." /> <Button android:text="0" /> <Button android:text="=" /> <Button android:text="*" /> </TableRow> </TableLayout>
网格布局
如上图,网格布局和表格布局类似,但是网格能自身确定整个布局应该出现多少行多少列。控件放入的时候从左到右摆满指定的列数,再从第二行开始摆放
常用属性
android:orientation="horizontal"//表示控件在网格中从左到右顺序摆放还是上到下的顺序摆放 android:rowCount="4"//行数 android:columnCount="3"//列数 android:layout_rowSpan="2"//跨2行 android:layout_columnSpan="2"//跨2列 android:layout_gravity="fill"//填充展示
案例
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" android:rowCount="4" android:columnCount="3" > <Button android:text="1"/> <Button android:text="2"/> <Button android:text="3"/> <Button android:text="4" android:layout_rowSpan="2" android:layout_columnSpan="2" android:layout_gravity="fill"/> <Button android:text="5"/> <Button android:text="6"/> <Button android:text="7"/> <Button android:text="8"/> <Button android:text="9"/> </GridLayout>