如果添加了footerview,则分隔符将从listview中的最后一项消失

时间:2011-04-14 10:11:29

标签: android listview divider

如果在ListView中添加了页脚视图,则分隔符将从ListView的最后一项消失。

即使我已使用ListView设置android:footerDividersEnabled="true",我的页脚视图也只是TextTiew。

5 个答案:

答案 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没有。