没有列表项分隔符的ListView标头

m4t*_*4tx 7 java user-interface android listview android-listview

我目前正在编写一个使用带有标题的ListView的Android应用程序.它工作正常,但不是我想要的.ListView中的每个项目在其顶部和底部都有1-2px分隔符.标题也是如此 - 这就是问题所在.它看起来不太漂亮......

项目和标题之间的丑陋分隔符

有趣的是,系统应用程序(例如"设置")没有这样的问题.

设置应用

这是我的示例适配器:

setListAdapter(new BaseAdapter() {
    @Override
    public int getCount() {
        return 10;
    }

    @Override
    public Object getItem(int i) {
        return i;
    }

    @Override
    public long getItemId(int i) {
        return i;
    }

    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
        View v = ((LayoutInflater)getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE))
                .inflate(i % 3 == 0 ? R.layout.list_header : android.R.layout.simple_list_item_1, viewGroup, false);
        ((TextView)v.findViewById(android.R.id.text1)).setText("test");
        return v;
    }
});
Run Code Online (Sandbox Code Playgroud)

并列出标题布局文件:

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/text1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Hello, World"
    style="?android:attr/listSeparatorTextViewStyle">

</TextView>
Run Code Online (Sandbox Code Playgroud)

所以问题是:如何摆脱标题和常规项之间的项分隔符,就像,例如,设置应用程序吗?

编辑:看完答案后,我想澄清一件事.我不是要完全删除分隔符.我想只在标题项和常规项之间删除它们.另外,像"完全去除分隔符并将它们添加到某些项目上"这样的一半措施也不能满足我的要求.

Lib*_*bin -1

删除您为标题设置的样式TextView

使用所需的分隔线创建您自己的自定义样式并将其设置为TextView

  <style name="CustomListSeperatorTextViewStyle" parent="Widget.TextView.ListSeparator">
<item name="android:background">@drawable/your_own_here</item>
Run Code Online (Sandbox Code Playgroud)