Android 表格布局显示所有分隔线

Android Tablelayout show all dividers

Android 表格布局是否可以使用 xml 属性显示所有分隔线(见下图)?

我花了一些时间在互联网上搜索,发现很多人只是使用自定义视图。

在xml或其他更好的方法中有什么方法可以做到这一点吗?

示例(不介意不同的边框粗细):

您可以使用以下代码完成此操作

使用以下代码在可绘制文件夹中创建一个选择器xml

valuecellborder.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
<!--     <solid android:color="#dc6888"/>     -->
    <stroke android:width="0.1dp" android:color="#ffffff"
        />
    <padding android:left="0dp" android:top="0dp"
            android:right="0dp" android:bottom="0dp" />
</shape>

现在在您的布局中 xml TableRow 标记中的代码 put

android:background="@drawable/valuecellbroder"

在每个项目标签中,例如 Textview 背景

最简单的方法是让 TableLayout 或 GridLayout 的每个单元格成为包含该单元格的小部件的容器,在其中提供容器一个背景就是你的行。可以在 XML 中为该背景定义一个 ShapeDrawable,它可以根据单元格的实际要求很好地调整大小。

在我的例子中,我使用了这个方法。
我将 Table 背景设置为黑色,然后使用 TopMargin 将 table 行背景设置为白色。
在 .xml 中:

<TableLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="#000000" />

在 .java 中:

TableRow tr = new TableRow(MainActivity.this);
tr.setBackgroundColor(resource.getColor(R.color.white));
int topMargin = 2;  // border Thickness
TableLayout.LayoutParams tableRowParams =
        new TableLayout.LayoutParams(TableLayout.LayoutParams.FILL_PARENT, 250);  // 250 is my row height
tableRowParams.setMargins(0, topMargin, 0, 0);
tr.setLayoutParams(tableRowParams);