我需要添加添加具有复杂项目背景的ListView:顶部和底部的偶数/奇数和圆角不同。看起来像这样:
我已经通过级别列表实现了所有这些东西,但是我还想做一件事。现在,底部项目位于屏幕底部附近。最好增加一些空间。
我不想在ListView中添加底边距,我只需要为最后一项添加边距。
我看到的方法是:
页脚
一种技巧–将带有空白TextView的页脚添加到ListView。但是页脚是非常不稳定的东西,它们通常在notifyDataSetChanged之后消失,并且没有办法将它们恢复
具有透明像素的图像
我要求设计师将透明像素添加到底部背景资源。不幸的是,在这种情况下,垂直居中被完全破坏了。例如,有9patch这样的:
布局如下:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<!-- View with background with transparent pixels on bottom -->
<LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content"
android:id="@+id/item"
android:background="@drawable/some_bgr"
android:padding="10dp"
>
<TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1"
android:text="Title"
android:layout_gravity="center"
android:textSize="18sp"
/>
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content"
android:text="Detail"
android:layout_gravity="center"
android:textSize="18sp"
/>
</LinearLayout>
<!-- Just for marking place took by view -->
<FrameLayout android:layout_width="match_parent" android:layout_height="match_parent"
android:layout_below="@id/item"
android:background="#88ff55"
/>
</RelativeLayout>
结果:
如您所见,居中不起作用。不幸。(顺便说一句,如果将此9patch指定为TextView的背景,则居中效果很好。如果您有任何文章对此进行了说明,请告诉我。)
将下边距添加到适配器实现中的最后一项
那应该起作用,但是由于未知的原因,我仍然无法使它起作用。我不喜欢这种方式,因为我不喜欢在代码中修改尺寸。
所以
已经有一种虚构的方法–用特定的位图和边距构造一些XML可绘制的图像。根据drawables概念,这应该是可能的,但是我找不到实现方法。可能有人知道吗?
还有其他想法吗?