7

Если вы установили selectability элемента preference в значение false, вы заметите, что разделители вокруг этого элемента исчезнут.Есть ли способ сохранить разделители вокруг неизбираемого предпочтения?

Знаете ли вы, есть ли способ сохранить эти разделители?

Я просмотрел API ListView и не смог найти решение, которое может быть применено здесь, поскольку для элементов ListView не существует выбираемого атрибута (кроме headers и footers).

Спасибо!

ответ

0

какой-нибудь пример кода поможет! вы установили свои разделители в элементе ListView? если да, то отметьте this post.

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

В противном случае вы можете создать пользовательский элемент ListElementView и добавить свои разделители в макет xml.

+1

Я не говорю, что мой список элементов настроек не имеет разделителей вообще. Я говорю, что предметы, которые сделаны * не подбираются, заканчиваются без разделителей вокруг них. В коде нет ничего особенного, так как он работает так, как предполагала его структура. Я просто ищу способ настроить этот опыт по умолчанию. Спасибо за помощь! –

1

Я сделал это с помощью взлома.

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

Рез/макет/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" /> 
+0

Почему вы изменили его на 1px? 0px отлично подходит для меня, просто интересно, могут ли быть проблемы с 0px на некоторых устройствах или версиях Android? – tomrozb

0

Вот "трюк", который работал для меня. Просто установите андроид: focusable = "true" на любой из элементов, находящихся в этом предпочтении. Это приведет к тому, что вся строка настроек не будет доступна.

0

Если вы хотите использовать предпочтительный вариант для отображения некоторого текста, вы также можете использовать неотредактированное EditTextPreference. Предпочтение по-прежнему будет доступно, но отображает только его содержимое.

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

Линия, которую вы хотите скрыть, называется делителем. PreferenceActivity extends ListActivity и, как вы можете ожидать, использует ListView. Вы можете изменить делитель в ListView. В вашем PreferenceActivity:

 ListView lv = getListView(); 
     lv.setDivider(new ColorDrawable(Color.TRANSPARENT)); 
     lv.setDividerHeight(0); 
Смежные вопросы