我想在我的TableLayout
添加verdical divider。
我的TableLayout
看起来像这样:
但我想在每行的两个textview
之间添加一行(分隔符)。我尝试在两个View
之间放置一个textview
,但它会拉伸该行。
以下是我上面布局的代码:
<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
或其他任何方式实现上述布局吗?
答案 0 :(得分:4)
我认为这个解决方案要容易得多。
你的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"
没有背景的结果:
答案 1 :(得分:2)
这是主要的xml文件。你可以使用
android:divider="@drawable/vertical_divider"
android:showDividers="middle"
在线性布局中显示垂直分隔线。我设计了你的布局,我不喜欢桌面布局,你可以试试线性布局。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/rounded_corner"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:divider="@drawable/vertical_divider"
android:showDividers="middle">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:padding="16dp"
android:text="Lorem ipsum" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:padding="16dp"
android:text="Lorem ipsum" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#FFCCCCCC"></View>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:divider="@drawable/vertical_divider"
android:orientation="horizontal"
android:showDividers="middle">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:padding="16dp"
android:text="Lorem ipsum" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:padding="16dp"
android:text="Lorem ipsum" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#FFCCCCCC"></View>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:divider="@drawable/vertical_divider"
android:orientation="horizontal"
android:showDividers="middle">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:padding="16dp"
android:text="Lorem ipsum" />
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:padding="16dp"
android:text="Lorem ipsum" />
</LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="#FFCCCCCC"></View>
</LinearLayout>
这是
的代码rounded_corner.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#00000000" />
<stroke
android:width="1dp"
android:color="#bababa" />
<padding
android:bottom="1dp"
android:left="1dp"
android:right="1dp"
android:top="1dp" />
<corners
android:bottomLeftRadius="25dip"
android:bottomRightRadius="25dip"
android:topLeftRadius="25dip"
android:topRightRadius="25dip" />
</shape>
这是
的代码vertical_divider.xml
<?xml version="1.0" encoding="UTF-8"?>
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:insetBottom="2dp"
android:insetTop="2dp">
<shape>
<size android:width="1dp" />
<solid android:color="#FFCCCCCC" />
</shape>
</inset>
将您的颜色代码放在上面:)
输出