如果在ListView中添加了页脚视图,则分隔符将从ListView的最后一项消失。
即使我已使用ListView设置android:footerDividersEnabled="true"
,我的页脚视图也只是TextTiew。
答案 0 :(得分:21)
将isSelectable
设置为true
对我不起作用,可能是因为我的列表加载完毕后我也在调用removeFooterView
。
最终为我解决的是在ListView上将android:layout_height
设置为“fill_parent
”而不是“wrap_content
”。
答案 1 :(得分:20)
Android中的ListView
实现从不在禁用的项目之间划分分隔符,如果您只是调用addFooterView(View v)
方法,则默认情况下您的页脚将会是。
相反,您需要调用addFooterView(View v, Object data, boolean isSelectable)
方法,并将isSelectable
设置为true
。如果您不需要,可以为null
对象传递data
。
答案 2 :(得分:14)
这几乎对我有用。我是在最后一个列表项之后的分隔符之后,但不是在页脚之后因为我的页脚是空的空间。我最后添加了两个页脚,一个可选择零高度,一个不可选择包含填充。
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);
答案 3 :(得分:8)
尝试将layout_height
的{{1}}设置为ListView
:
match_parent
当android:layout_width="match_parent"
android:layout_height="match_parent"
android:divider="#333333"
android:dividerHeight="1px"
设置为layout_height
时,它可能会跳过底部分隔线:
wrap_content
答案 4 :(得分:1)
穿过墙壁方法,但可靠,是手动添加分隔线作为页脚视图。
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
没有。