如果在 ListView 中添加了页脚视图,则分隔符从 ListView 的最后一项中消失。
即使我已经设置android:footerDividersEnabled="true"
了 ListView,而我的页脚视图也只是 TextTiew。
设置isSelectable
为true
对我不起作用,可能是因为removeFooterView
在我的列表加载完成时我也在打电话。
最终为我解决的问题是在 ListView 上设置android:layout_height
为“ fill_parent
”而不是“ ”。wrap_content
Android 中的ListView
实现永远不会在禁用的项目之间绘制分隔线,如果您只是调用该addFooterView(View v)
方法,那么默认情况下您的页脚将是。
相反,您需要调用设置为的addFooterView(View v, Object data, boolean isSelectable)
方法。如果您不需要它,您可以只传递该对象。isSelectable
true
null
data
这几乎对我有用。我在最后一个列表项之后有一个分隔符,但不是在页脚之后,因为我的页脚是空白空间。我最终添加了两个页脚,一个可选择零高度,一个不可选择包含填充。
TextView view = new TextView(this);
view.setLines(0);
TextView view1 = new TextView(this);
view1.setLines(4);
mListView.addFooterView(view, null, true);
mListView.addFooterView(view1, null, false);
mListView.setFooterDividersEnabled(true);
尝试将 的设置layout_height
为:ListView
match_parent
android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="#333333"
android:dividerHeight="1px"
当layout_height
设置为wrap_content
它可能会跳过底部分隔线:
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:divider="#333333"
android:dividerHeight="1px"
头穿墙的办法,但可靠,就是手动添加分隔线作为页脚视图。
ListView myListView = (ListView) view.findViewById(R.id.my_list_view);
myListView.addFooterView(getInflater().inflate(R.layout.horizontal_divider, myListView, false), null, false);
myListView.addFooterView(getInflater().inflate(R.layout.the_original_footer_view, myListView, false), null, false);
布局文件如下所示:
<View xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="1px"
android:background="?android:attr/dividerVertical" />
即使在最后一个页脚之后,这种方法也可以用来轻松添加分隔线,无论它是可选择的、启用的还是其他任何东西——它就在那里。
注意高度是1px
而不是1dp
。尽管违背了所有建议,但至少在我测试的设备上,它给出了与 ListView 相同的分隔高度,而1dp
没有。