有没有办法让分隔线围绕一个不可选择的偏好?

时间:2013-08-26 13:37:26

标签: android listview android-listview preferenceactivity listpreference

如果您将selectability项的preference设置为false,您会发现该项目周围的分隔线将消失。

你知道是否有办法保留这些分隔线?

我查看了ListView API,找不到可以在此处应用的解决方案,因为ListView项目没有可选属性(headersfooters除外)。

谢谢!

5 个答案:

答案 0 :(得分:1)

我是用黑客做的。

<Preference android:layout="@layout/preference_divider" />
<Preference android:title="@string/whatever" android:selectable="false" />

RES /布局/ preference_divider.xml

<?xml version="1.0" encoding="utf-8"?>
<View xmlns:android="http://schemas.android.com/apk/res/android"
    android:background="#cccccc"
    android:layout_width="fill_parent"
    android:layout_height="1px" />

答案 1 :(得分:0)

一些示例代码会有所帮助!你是否在ListView元素中设置了分隔线?如果是,请同时检查this post

<ListView
    //...
    android:divider="@color/black"
    />

否则,您可以创建自定义ListElementView并在布局xml中添加分隔符。

答案 2 :(得分:0)

这是一个对我有用的“技巧”。只需设置android:focusable =“true”  到首选项内的任何项目。这将使整个首选项行无法点击。

答案 3 :(得分:0)

如果您想使用首选项来显示某些文本,您还可以使用不可编辑的EditTextPreference。 首选项仍然可以选择,但仅在选中时显示其内容。

<EditTextPreference
    android:editable="false"
    ... />

答案 4 :(得分:0)

您要隐藏的行称为“divider”。 PreferenceActivity扩展ListActivity,您可能会认为它使用了ListView。您可以更改ListView中的分隔符。在PreferenceActivity

        ListView lv = getListView();
        lv.setDivider(new ColorDrawable(Color.TRANSPARENT));
        lv.setDividerHeight(0);