Android - 使用TableRow在TableLayout上添加行

时间:2013-12-04 18:34:13

标签: android android-layout layout view android-tablelayout

enter image description here

嗨!这是我的TableLayout,每个单元格都有TableRow和Button。我想要一个垂直和水平线来分隔单元格,使用XML属性。

      <TableLayout
            android:id="@+id/tableLayout1"
            android:layout_width="match_parent"
            android:layout_height="200dp"
            android:background="#fff"
            android:shrinkColumns="*"
            android:stretchColumns="*" >

            <TableRow
                android:id="@+id/table0"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center_horizontal" >

                <TextView
                    android:id="@+id/x"
                    android:text=""
                    android:textStyle="bold" />

                <TextView
                    android:id="@+id/LUN"
                    android:text="LUN"
                    android:textStyle="bold" />

                   .....

                <TextView
                    android:id="@+id/VEN"
                    android:text="VEN"
                    android:textStyle="bold" />

                <TextView
                    android:id="@+id/SAB"
                    android:text="SAB"
                    android:textStyle="bold" />
            </TableRow>

            <TableRow
                android:id="@+id/table1"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" >

                <TextView
                    android:id="@+id/o1"
                    android:text="1°" >
                </TextView>

                <Button
                    android:id="@+id/bLUN1"
                    android:layout_width="15dp"
                    android:layout_height="27dp" />

                <Button
                    android:id="@+id/bMAR1"
                    android:layout_width="15dp"
                    android:layout_height="27dp" />

                .....

                 ....
            </TableRow>

            <TableRow
                android:id="@+id/table2"
                android:layout_width="match_parent"
                android:layout_height="wrap_content" >

                <TextView
                    android:id="@+id/o2"
                    android:text="2°" />

                <Button
                    android:id="@+id/bLUN2"
                    android:layout_width="15dp"
                    android:layout_height="27dp" />

               ....

所以,我想使用像简单视图这样的行,但我不知道如何,对不起英语不好!

2 个答案:

答案 0 :(得分:2)

创建一个这样的形状xml并将其保存在drawable文件夹中。

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >

<stroke android:width="2px" 
    color="#000000" />

</shape>

将其设置为每个单元格的背景。

答案 1 :(得分:1)

来自文档:

  

TableLayout容器不显示其行的边框线,   列或单元格。

因为它是View的子类,所以在TableLayout的onDraw()方法中你可以像这样绘制边框线:

myPaint.setColor(0xff000000);
//horizontal lines
for(int i = 2; i < heightfactor + 1; i++)
    c.drawLine(0, horz_spacing_factor * i,  cwidth,  horz_spacing_factor * i,  myPaint);
//vertical lines
for(int i = 2; i < widthfactor + 1; i++)
    c.drawLine(vert_spacing_factor * i, 0,  vert_spacing_factor * i, cwidth,  myPaint);