android表格垂直列分隔符

Posted

技术标签:

【中文标题】android表格垂直列分隔符【英文标题】:android table vertical column divider 【发布时间】:2021-08-13 12:26:16 【问题描述】:

我正在尝试在 android 表格布局中的列之间添加垂直分隔线,并尝试了多种解决方案,但没有奏效。这是我的表格代码的结果图像

出于某种原因,即使提到宽度,视图也会占用一整列来显示分隔线

表格代码

<TableLayout
    android:layout_
    android:layout_
    android:padding="20dp">

    <TableRow
        android:layout_
        android:layout_>

        <TextView
            android:layout_
            android:layout_
            android:layout_gravity="center_horizontal"
            android:layout_weight="1"
            android:text="@string/item_code"
            android:textStyle="bold" />

        <View
            android:layout_
            android:layout_
            android:background="@color/red_" />


        <TextView
            android:layout_
            android:layout_
            android:layout_gravity="center_horizontal"
            android:layout_weight="1"
            android:text="@string/item_desc"
            android:textStyle="bold" />

    </TableRow>

    <View
        android:layout_
        android:background="@color/red_" />

    <TableRow
        android:layout_
        android:layout_
        android:layout_marginTop="10dp">

        <TextView
            android:layout_
            android:layout_
            android:layout_gravity="center_horizontal"
            android:layout_weight="1"
            android:text="SFT001" />

        <View
            android:layout_
            android:layout_
            android:background="@color/red_" />

        <TextView
            android:layout_
            android:layout_
            android:layout_gravity="center_horizontal"
            android:layout_weight="1"
            android:text="Full table" />

    </TableRow>

</TableLayout>

【问题讨论】:

【参考方案1】:

我发现在单个单元格上使用背景来实现分隔线更容易。

例如创建一个类似于下面的drawable,称为right_border.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle">
            <solid android:color="@color/red" />
        </shape>
    </item>
    <item android:right="3dp">
        <shape android:shape="rectangle">
            <solid android:color="@color/white" />
        </shape>
    </item>
</layer-list>

(这是一个红色矩形,顶部有一个白色矩形,但红色的 3dp 暴露在外)

然后在单元格上(TextView)

<TextView
            android:layout_
            android:layout_
            android:layout_gravity="center_horizontal"
            android:layout_weight="1"
            android:text="@string/item_code"
            android:textStyle="bold" 
            android:background="@drawable/right_border"/>

其他带有矩形和矩形组合的可绘制对象可以为您提供完整的边框或任何边。

【讨论】:

是的,这是可行的,但所有行的对齐方式都是歪斜的

以上是关于android表格垂直列分隔符的主要内容,如果未能解决你的问题,请参考以下文章

引导程序中两列之间的垂直分隔线

在 ChipGroup (Android) 中添加垂直分隔线

带有垂直分隔符的 qt 文件菜单以创建最近的列

如何显示水平和垂直渐变分隔线?

Flex DataGrid 标题列分隔符

怎么把excel表格数据变成逗号分隔的形式?