【Android从零单排系列三十一】《Android布局介绍——TableLayout》

2023-07-17 20:31:09 浏览数 (1)

前言

小伙伴们,在上文中我们介绍了Android布局RelativeLayout,本文我们继续盘点介绍Android开发中另一个常见的布局,相对布局TableLayout。

一 TableLayout基本介绍

TableLayout是用于显示表格布局的Android布局容器。它以行和列的形式组织视图,使得视图可以以表格的形式排列。

二 TableLayout使用方法

TableLayout是一种用于创建表格布局的Android布局容器。下面是TableLayout的使用方法:

在XML布局文件中定义TableLayout:

代码语言:javascript复制
<TableLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <!-- 添加TableRows和TableCells -->

</TableLayout>

在TableLayout内部添加TableRows:

代码语言:javascript复制
<TableLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TableRow>
        <!-- 添加TableCells -->
    </TableRow>

    <TableRow>
        <!-- 添加TableCells -->
    </TableRow>

    <!-- 可以添加多个TableRows -->

</TableLayout>

在每个TableRow中添加TableCells:

代码语言:javascript复制
<TableRow>
    <TextView
        android:text="Cell 1" />

    <TextView
        android:text="Cell 2" />

    <!-- 可以添加多个TableCells -->

</TableRow>

可以在TableCells中添加任何视图,例如TextView、Button等。

设置TableLayout的属性:

  • android:layout_widthandroid:layout_height:设置TableLayout的宽度和高度。
  • android:stretchColumns:指定要拉伸的列索引(从0开始),使其占据可用空间的比例均衡分配,默认情况下所有列都具有相同的权重。
  • 其他属性:可以参考Android官方文档了解更多属性选项。

控制列的样式和行为:

  • 使用android:gravity属性来设置单元格(TableCell)中文本的对齐方式。
  • 使用其他视图属性(例如android:layout_widthandroid:layout_height等)来控制单元格中视图的大小。

三 TableLayout常见属性及方法

常见属性:

  1. android:layout_widthandroid:layout_height:设置TableLayout的宽度和高度。
  2. android:stretchColumns:指定要拉伸的列索引(从0开始),使其占据可用空间的比例均衡分配,默认情况下所有列都具有相同的权重。
  3. android:shrinkColumns:指定当存在额外空间时要缩小的列索引(从0开始)。
  4. android:collapseColumns:指定要折叠隐藏的列索引(从0开始)。
  5. android:background:设置TableLayout的背景颜色或背景图片。

常见方法:

  1. setColumnCollapsed(int columnIndex, boolean isCollapsed):将指定列折叠/展开。
  2. setColumnStretchable(int columnIndex, boolean isStretchable):设置指定列是否可以拉伸,即占据剩余空间。
  3. setColumnShrinkable(int columnIndex, boolean isShrinkable):设置指定列是否可以缩小,即在剩余空间不足时缩小。
  4. setGravity(int gravity):设置TableLayout中所有单元格的对齐方式。
  5. getLayoutParams():获取当前TableLayout的布局参数。
  6. requestLayout():请求重新计算TableLayout的布局。

四 TableLayout简单案例

以下是一个简单的TableLayout案例,演示如何创建一个包含两行三列的表格布局:

代码语言:javascript复制
<TableLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <!-- 第一行 -->
    <TableRow>
        <TextView
            android:text="Cell 1"
            android:padding="8dp"
            android:background="#E0E0E0" />

        <TextView
            android:text="Cell 2"
            android:padding="8dp"
            android:background="#E0E0E0" />

        <TextView
            android:text="Cell 3"
            android:padding="8dp"
            android:background="#E0E0E0" />
    </TableRow>

    <!-- 第二行 -->
    <TableRow>
        <TextView
            android:text="Cell 4"
            android:padding="8dp"
            android:background="#FFFFFF" />

        <TextView
            android:text="Cell 5"
            android:padding="8dp"
            android:background="#FFFFFF" />

        <TextView
            android:text="Cell 6"
            android:padding="8dp"
            android:background="#FFFFFF" />
    </TableRow>

</TableLayout>

五 总结

TableLayout是用于创建表格布局的强大工具,适用于需要展示数据或按照表格形式排列视图的场景。通过合理使用TableLayout的属性和方法,可以实现各种复杂的表格布局需求。

0 人点赞