【问题标题】:I want to edit Preference.xml style我想编辑 Preference.xml 样式
【发布时间】:2018-03-15 04:44:13
【问题描述】:

我使用Preference.xml 设置页面。

文件有PreferenceScreen、PreferenceCategory、SwitchPreference等。但是Preference有问题。将两个 SwitchPreferences 放入 PreferenceCategory 时,会出现 SwitchPreferences 之间的分割线。所以我想改变线条的颜色或删除它。

许多人使用style.xml 并更改Preference 的值。但我不知道如何将样式应用于 Preference。我应该使用清单吗?那怎么办?

请详细告诉我。

------------------更新----------

这里是xml代码。

<?xml version="1.0" encoding="utf-8"?>

<PreferenceCategory
    android:title="Locker Mode">

    <SwitchPreference
        android:defaultValue="false"
        android:key="toggle_select_mode"
        android:switchTextOff="OFF"
        android:switchTextOn="ON"
        android:summary="Change to free mode when key activated"
        />

</PreferenceCategory>

<PreferenceCategory
    android:title="Notifications">

    <SwitchPreference
        android:defaultValue="false"
        android:key="toggle_soundkey"
        android:switchTextOff="OFF"
        android:switchTextOn="ON"
        android:summary="Play sound when key activated"
        />

    <SwitchPreference
        android:defaultValue="false"
        android:key="toggle_vibratekey"
        android:switchTextOff="OFF"
        android:switchTextOn="ON"
        android:summary="Vibrate when key activated"/>

</PreferenceCategory>
<PreferenceCategory
    android:title="Bluetooth">

    <ListPreference
        android:title="Bluetooth sensitivity"
        android:key="lp_ble_sensitivity"
        android:entries="@array/ble_sensitivity"
        android:entryValues="@array/ble_sensitivity"
        android:dialogTitle="Bluetooth sensitivity"
        />

</PreferenceCategory>

<PreferenceCategory
    android:title="User Interface">

    <SwitchPreference
        android:defaultValue="false"
        android:key="toggle_appstartscan"
        android:switchTextOff="OFF"
        android:switchTextOn="ON"
        android:summary="Start scanning when App started"
        android:autoText="true"
    />

    <SwitchPreference
        android:defaultValue="false"
        android:key="toggle_appfinish"
        android:switchTextOff="OFF"
        android:switchTextOn="ON"
        android:summary="Finish App when key activated"/>

</PreferenceCategory>

【问题讨论】:

  • 你能发布你的 Xml 文件吗.. 这样我们可以建议..
  • @MLN 我附上了我的 xml 代码。
  • 请检查thisthis

标签: android android-preferences android-styles


【解决方案1】:

preferencefragment下添加这段代码

 @Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
// remove dividers
View rootView = getView();
ListView list = (ListView) rootView.findViewById(android.R.id.list);
list.setDivider(null);

}

您可以使用样式删除分隔线

<style name="PreferenceFragment.Material">
    <item name="android:divider">@null</item>
</style>

在您的 PreferencesActivity 中设置样式

使用style="@style/PreferenceFragment.Material"设置样式

或者你可以这样做

   List view.setDivider(null); //as shown above

【讨论】:

  • 我知道。我只想知道如何在 Preference 中编辑样式
  • 请分享您的 PreferenceScreen xml
  • 我的答案已编辑,您也可以使用 java 设置样式
  • 它不起作用。但我用stackoverflow.com/a/27952333/9422444解决了这个问题
  • 是的,这是用于设置样式和删除分隔符的 java 代码,我也编辑了我的答案。一些正在寻找相同的人不应该混淆
猜你喜欢
  • 1970-01-01
  • 2016-09-22
  • 1970-01-01
  • 1970-01-01
  • 2018-04-29
  • 1970-01-01
  • 1970-01-01
  • 2015-11-08
  • 1970-01-01
相关资源
最近更新 更多