我开始使用 PreferenceFragment
处理偏好设置。这是我的代码:
我想要:
去掉项目之间的分隔线。我想这可以通过样式来定义,但我想不出怎么做。我尝试在运行时获取 preference
ListView
,调用findViewById(android.R.id.list)
, 如我在某个地方读到的那样,但它返回 null。在标题正上方设置新的、全宽度的分隔线,如此处所示。例如,在这个例子中,我想在“Statistiche”正上方放一个全宽度的分隔线,但不要在列表顶部的“Generali”上方放置分隔线。
唯一想到的方法是使用虚拟偏好设置设置分隔线,例如:
<Preference
android:layout="@layout/divider" //here I set width and a divider resource
/>
<PreferenceCategory ... />
这里的主要问题是,我的PreferenceFragment
(或者它所在的ActionBarActivity
)具有一些左/右内边距,这会使我在preferences.xml中添加的任何分隔线不能够覆盖整个宽度。
因此,我的问题是:
如何摆脱图像中所见默认的项目-项目分隔线?
如何设置完全覆盖标题的全宽度分隔线,或者如何消除内部片段/活动的填充?当然,我的活动布局没有任何(显式的)填充。
list = findViewById(android.R.id.list)
然后调用了list.setDivider(null)
。为了避免 NPE,你需要在onResume
中调用它,而不是在onCreate
中。至于另一个问题,我会尽快发布完整的答案。 - natariopublic class SettingsFragment extends PreferenceFragment
。那么在这种情况下,我们该如何实现呢?有什么帮助吗? - NarutoView rootView = getView();
,那么getview()
会返回NULL。 - Naruto