嗨!这是我的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" />
....
所以,我想使用像简单视图这样的行,但我不知道如何,对不起英语不好!
答案 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);