Android入门教程

TableLayout表格布局和AbsoluteLayout绝对

2021-11-28  本文已影响0人  微语博客

TableLayout表格布局和AbsoluteLayout绝对布局用的相对较少,尤其AbsoluteLayout绝对布局,由于灵活性差难以维护已被废弃,有兴趣的读者了解一下即可。

TableLayout表格布局

TableLayout类似HTML的table元素,可以定义行来实现表格布局效果。TableLayout中使用标签<tableRow></tableRow>来区分行,如果没有tableRow,每个组件都会产生一行

以下代码简单演示了TableLayout的使用:

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 android:layout_height="match_parent">
 <TableRow>
 <TextView
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="1,1"
 android:textSize="18sp"
 android:textColor="@color/black"
 android:paddingVertical="10dp"
 android:paddingHorizontal="20dp"/>
 <TextView
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="1,2"
 android:textSize="18sp"
 android:textColor="@color/black"
 android:paddingVertical="10dp"
 android:paddingHorizontal="20dp"/>
 </TableRow>
 <TableRow>
 <TextView
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="2,1"
 android:textSize="18sp"
 android:textColor="@color/black"
 android:paddingVertical="10dp"
 android:paddingHorizontal="20dp"/>
 <TextView
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="2,2"
 android:textSize="18sp"
 android:textColor="@color/black"
 android:paddingVertical="10dp"
 android:paddingHorizontal="20dp"/>
 </TableRow>
</TableLayout>

效果预览图:

TableLayout

上面示例实现了一个2*2的表格,两个tableRow代表两行,每个tableRow有两个TextView,表示两列。

常用属性:表格布局有以下三个常用属性,用于控制列的显示与变化。

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:collapseColumns="0"
 android:stretchColumns="2"><!--隐藏第一列,拉伸第三列-->
 <TableRow>
 <TextView
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="1,1"
 android:textSize="18sp"
 android:textColor="@color/black"
 android:paddingVertical="10dp"
 android:paddingHorizontal="20dp"
 android:background="@color/teal_200"/>
 <TextView
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="1,2"
 android:textSize="18sp"
 android:textColor="@color/black"
 android:paddingVertical="10dp"
 android:paddingHorizontal="20dp"
 android:background="@color/purple_200"/>
 <TextView
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="1,3"
 android:textSize="18sp"
 android:textColor="@color/black"
 android:paddingVertical="10dp"
 android:paddingHorizontal="20dp"
 android:background="@color/teal_200"/>
 <TextView
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="1,4"
 android:textSize="18sp"
 android:textColor="@color/black"
 android:paddingVertical="10dp"
 android:paddingHorizontal="20dp"
 android:background="@color/purple_200"/>
 </TableRow>
</TableLayout>

效果预览图:

表格布局属性

上面的示例展示了隐藏和拉伸的列,设置收缩的列需要有足够宽的组件,当一行显示不满不会产生收缩;设置拉伸的列会填充满余下的屏幕,如果还有可显示的屏幕的话。

如果需要控制多个列,属性值后添加列的序号即可,使用英文逗号分隔每个列。

AbsoluteLayout绝对布局

AbsoluteLayout绝对布局直接通过坐标x,y来控制组件位置,常用属性如下:

以上属性单位都是dp,用上面的属性写个示例看看

<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 android:layout_height="match_parent">
 <TextView
 android:layout_width="200dp"
 android:layout_height="30dp"
 android:text="第一行"
 android:textColor="@color/black"
 android:textSize="20sp"
 android:layout_x="40dp"/>
 <TextView
 android:layout_width="200dp"
 android:layout_height="30dp"
 android:text="第二行"
 android:textColor="@color/black"
 android:textSize="20sp"
 android:layout_y="40dp"/>
</AbsoluteLayout>

效果预览图:

AbsoluteLayout

如果不指定子组件的坐标,子组件就会堆在左上角,因为AbsoluteLayout已经被废弃,所以建议使用其它布局代替。

上一篇下一篇

猜你喜欢

热点阅读