我尝试创建一个包含多行的TableLayout,每行都有不同的列
以下显示列表视图。对于列表视图的每一行,它包含一个只有1行,2列的表格布局。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:padding="6dip">
<ImageView
android:id="@+id/color_label"
android:layout_width="12dip"
android:layout_height="fill_parent"
android:layout_marginRight="6dip"
android:background="#ffffff" />
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:stretchColumns="1">
<TableRow>
<TextView
android:id="@+id/toptext"
android:gravity="left"
/>
<TextView
android:id="@+id/bottomtext"
android:gravity="right"
/>
</TableRow>
<View android:layout_height="2dip"
android:background="#FF909090" />
</TableLayout>
</LinearLayout>
结果如下。
后来,我想进一步改进TableLayout。第一行有2列。它的第2行有4列,垂直线用1,2列分隔1,2列。
我使用以下代码。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="?android:attr/listPreferredItemHeight"
android:padding="6dip">
<ImageView
android:id="@+id/color_label"
android:layout_width="12dip"
android:layout_height="fill_parent"
android:layout_marginRight="6dip"
android:background="#ffffff" />
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:stretchColumns="1">
<TableRow>
<TextView
android:id="@+id/toptext"
android:gravity="left"
/>
<TextView
android:id="@+id/bottomtext"
android:gravity="right"
/>
</TableRow>
<View android:layout_height="2dip"
android:background="#FF909090" />
<TableRow>
<TextView
android:id="@+id/col1"
android:gravity="left"
android:text="Column 1"
/>
<TextView
android:id="@+id/col2"
android:gravity="right"
android:text="Column 2"
/>
<TextView
android:id="@+id/col3"
android:gravity="left"
android:text="Column 3"
/>
<TextView
android:id="@+id/col4"
android:gravity="right"
android:text="Column 4"
/>
</TableRow>
<View android:layout_height="2dip"
android:background="#FF909090" />
</TableLayout>
</LinearLayout>
结果如下。
但是,第二行表格布局不是我想要的。我希望拥有的是这样的。
如何改进我的XML以达到上述效果?
答案 0 :(得分:1)
您可以为不同的项目渲染器创建自己的可绘制xmls(在res/drawable-[h|m|l]dpi
内),并将它们设置为背景。
通过这种方式,您可以实现任何类型的边框,形状等,并且在adapter
的{{1}}方法中,您只需使用正确的getView
来扩充所需的视图。