【问题标题】:android preference horizontal divider in custom preference?自定义偏好中的android偏好水平分隔线?
【发布时间】:2011-03-30 04:37:30
【问题描述】:
我已经创建了我自己的扩展 Preference 的自定义首选项对象。我之所以创建它们,是因为这些自定义数据类型没有首选项。
一切正常,但我的自定义首选项没有相同的外观,因为它们缺少系统首选项对象具有的水平分隔线。我已经寻找了创建水平分隔线的代码,但我找不到它在哪里完成。
内置的分隔线不仅仅是一个细条。它有一点渐变。我在想这可能在布局文件中,但我找不到系统首选项的布局。
有人知道这是如何实现的吗?
【问题讨论】:
标签:
android
line
gradient
preference
【解决方案1】:
非常古老的帖子,但对于那些偶然发现的人。不确定 OP 是否在询问如何更改分隔线或分隔线图像的来源。所以我会同时解决这两个问题。
如何
Preferences 使用ListView 填充所有个人偏好。这意味着您可以使用ListView 中的.setDivider() 方法更改分隔符。 PreferenceActivity 已经为您提供了 getListView() 方法。但是对于PreferenceFragments,只需使用android.R.id.list ID 即可找到它。
如果您不想通过代码更改分隔符,您始终可以通过覆盖listDivider 属性来使用主题。例如:
<item name="android:listDivider">@drawable/custom_divider</item>
注意,这将更改应用中每个 ListView 的分隔符。
在哪里
使用的 listDivider drawable 取决于激活的 Android 主题。您将在以下位置的已安装 Android SDK 中找到所有这些图像:
[Android SDK]/platforms/[API]/data/res/drawable-[DPI]/
只需搜索 `*divider_horizontal*`,您就会找到很多。它们是九个补丁,并非所有都是纯色。