如何在Android中的ListView上方和下方添加边距?

时间:2012-05-21 18:26:36

标签: android android-layout android-listview android-listfragment

我一直在努力做一些我认为是一个非常常见的Android ListView请求,在我的特定情况下,这个ListView被用作ListFragment的一部分。

我希望列表上方和下方有一个空白的填充区域,当列表与之交互时,它会与列表项一起上下滚动。

我做了很多环顾四周,我不仅没有找到答案,我也发现旁边没有人问这个问题,让我想知道我是否错过了什么。

我的第一次尝试是:

 <ListView android:id="@id/android:list"
    android:paddingTop="16dip"
    android:paddingBottom="16dip"
    android:clipToPadding="false"...

这提供了所需的填充,但不幸的是“clipToPadding”属性没有按照它在锡上所说的那样做,当滚动列表时,项目从ListView的可见区域的顶部和底部被剪切掉16dip,而不是我我正在寻找。知道为什么它仍然被削减了吗?

我的第二次尝试涉及通过ListView api以编程方式将透明页眉和页脚视图添加到列表中:

addHeaderView();
addFooterView();

这很好用,给了我正在寻找的确切互动。不幸的是,当我的片段从后栈发出时,它就崩溃了。当我的片段被推入后端堆栈时,旧的页眉和页脚视图消失了,与视图的其余部分一起丢弃但是如果我尝试添加新的,我会收到一条错误,指出列表适配器已经设置。页眉/页脚视图只能在设置适配器之前设置,不幸的是,它发生在整个组件生命周期循环之前。

我看到该错误的唯一“解决方案”是清空列表适配器,重新添加我的页脚/标题,然后将列表适配器设置为它的原始值。这对我来说是“黑客”,并且让我觉得我一开始并没有正确使用它。

有没有办法以合理的方式运行所需的功能?扩展ListFragment是我问题的一部分吗?滚动我自己的由ListView组成的片段会更好吗?

非常感谢任何和所有帮助。

0 个答案:

没有答案