【发布时间】:2019-06-03 11:11:19
【问题描述】:
我尝试在没有任何自定义样式的情况下使用 PreferencesFragmentCompat,但 IDE 预览窗口显示一些渲染错误和主题错误,具有基本配置:
settings.xml
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<PreferenceCategory app:title="Sensor settings">
<EditTextPreference
android:inputType="text"
app:icon="@android:drawable/ic_menu_save"
app:key="@string/key_setting_dname"
app:summary=""
app:title="Station Name" />
<SwitchPreference
app:defaultValue="false"
app:key="@string/key_setting_enable_reboot"
app:summary="@string/summary_reboot"
app:title="Enable WiFi Connection" />
</PreferenceCategory>
<PreferenceCategory app:title="Dedicated WiFi Connection">
<EditTextPreference
android:inputType="text"
app:icon="@android:drawable/ic_lock_lock"
app:key="@string/key_setting_ssid"
app:summary=""
app:title="WiFi Name" />
<EditTextPreference
android:inputType="textWebPassword"
android:password="true"
app:key="@string/key_setting_pass"
app:summary="WiFi password"
app:title="Password" />
<SwitchPreference
app:defaultValue="false"
app:key="@string/key_setting_enable_wifi"
app:summary="@string/summary_wifi"
app:title="Enable WiFi Connection" />
</PreferenceCategory>
</PreferenceScreen>
styles.xml
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
</resources>
有了它,我得到了下一个错误:
我修复了这些问题,添加了一些样式扩展
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="preferenceTheme">@style/PreferenceStyle</item>
</style>
<style name="PreferenceStyle" parent="@style/PreferenceThemeOverlay.v14.Material">
<item name="preferenceCategoryStyle">@style/CustomPreferenceCategory</item>
</style>
<style name="CustomPreferenceCategory" parent="@style/Preference.Category">
</style>
<style name="AppTheme.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
<style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
</resources>
但有了它,我得到了旧的标题样式偏好
我的目标是拥有没有自定义样式和 IDE 预览错误的最后一个样式,就像这样
【问题讨论】:
标签: android android-support-library android-preferences androidx