我想在我的 TableLayout
中添加垂直分隔符。
我的 TableLayout
看起来像这样:
但我想在每一行的两个 textview
之间添加一行(分隔线)。我尝试在两个 textview
之间放置一个 View
,但它会拉伸(stretch)该行。
这是我对上述布局的代码:
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/row"
android:layout_gravity="center"
android:showDividers="beginning"
android:orientation="horizontal"
android:stretchColumns="1"
android:background="@drawable/custom_background">
<TableRow>
<TextView
android:text="Name"
android:padding="3dip" />
<TextView
android:text="Imran"
android:gravity="left"
android:padding="3dip" />
</TableRow>
<View
android:layout_height="2dip"
android:background="#FF909090" />
<TableRow>
<TextView
android:text="Name"
android:padding="3dip" />
<TextView
android:text="Test"
android:gravity="left"
android:padding="3dip" />
</TableRow>
<View
android:layout_height="2dip"
android:background="#FF909090" />
<TableRow>
<TextView
android:text="Name"
android:padding="3dip" />
<TextView
android:text="Test"
android:gravity="left"
android:padding="3dip" />
</TableRow>
我想实现如下布局:
谁能帮助我使用 TableLayout
或任何其他方式实现上述布局?
最佳答案
我认为这个解决方案要简单得多。
你的表格布局:
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_margin="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:divider="@drawable/table_divider"
android:showDividers="middle"
android:shrinkColumns="*"
android:background="@drawable/rounded_corners">
<TableRow
android:divider="@drawable/table_divider"
android:showDividers="middle"
android:weightSum="3">
<TextView
android:layout_width="0dp"
android:layout_weight="1"
android:padding="3dp"
android:text="Column1"
android:textStyle="bold" />
<TextView
android:layout_width="0dp"
android:layout_weight="1"
android:padding="3dp"
android:text="Column2"
android:textStyle="bold" />
<TextView
android:layout_width="0dp"
android:layout_weight="1"
android:padding="3dp"
android:text="Column3"
android:textStyle="bold" />
</TableRow>
<TableRow
android:divider="@drawable/table_divider"
android:showDividers="middle"
android:weightSum="3">
<TextView
android:layout_width="0dp"
android:layout_weight="1"
android:padding="3dp"
android:text="Column1" />
<TextView
android:layout_width="0dp"
android:layout_weight="1"
android:padding="3dp"
android:text="Column2" />
<TextView
android:layout_width="0dp"
android:layout_weight="1"
android:padding="3dp"
android:text="Column3" />
</TableRow>
</TableLayout>
你的背景可绘制:
<?xml version="1.0" encoding="utf-8"?>
<solid android:color="#00000000" />
<stroke
android:width="1dp"
android:color="@android:color/black" />
<corners
android:bottomLeftRadius="10dp"
android:bottomRightRadius="10dp"
android:topLeftRadius="10dp"
android:topRightRadius="10dp" />
以及分隔线的形状:
table_divider.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<size android:height="1dp" />
<size android:width="1dp" />
<solid android:color="@android:color/black" />
</shape>
结果:
如果您不需要背景,您可以在您的 TableLayout 和每个 TableRow 中这样做:
android:showDividers="beginning|middle|end"
没有背景的结果:
关于android - 无法将垂直分隔线添加到 TableLayout Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40708865/