Android Tablelayout显示所有分隔线

时间:2015-03-24 16:12:37

标签: android android-tablelayout divider

Android Tablelayout是否可以使用xml属性显示所有分隔符(见下图)?

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

有没有办法在xml或其他更好的方法中执行此操作?

示例(不要介意不同的边框厚度):
enter image description here

3 个答案:

答案 0 :(得分:5)

您可以使用以下代码

来完成此操作

使用以下代码

在drawable文件夹中创建选择器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>

现在在TableRow标签中的布局xml代码中放入

android:background="@drawable/valuecellbroder"

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

答案 1 :(得分:0)

最简单的方法,从我的头顶,给你你寻找的行是让TableLayout或GridLayout的每个单元格成为包含该单元格的小部件的容器,在那里你给容器一个背景是你的路线。可以用XML为该背景定义一个ShapeDrawable,它可以根据单元格的实际要求很好地调整大小。

答案 2 :(得分:0)

我使用的是这种方法。
我将表格背景设置为黑色,然后使用TopMargin将表格行背景设置为白色。
在.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);