android - 带有 AndroidX 首选项的 Android Studio 无法预览窗口
问题描述
我尝试在没有任何自定义样式的情况下使用PreferencesFragmentCompat ,但 IDE 预览窗口显示一些渲染错误和主题错误,具有基本配置:
设置.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>
样式.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 预览错误的最后样式,就像这样
解决方案
这是 Studio 渲染中的一个问题,有关更多上下文,请参阅https://issuetracker.google.com/issues/131618217。我想你可以改变
<style name="CustomPreferenceCategory" parent="@style/Preference.Category">
至
<style name="CustomPreferenceCategory" parent="@style/Preference.Category.Material">
使用最新的布局,并保持工作室渲染正常工作。
推荐阅读
- linux - egrep 没有在 for 循环中给出结果完整路径
- c++ - 模板类操作符+重载返回类型
- google-apps-script - 谷歌表格中的 F9 键以评估部分功能
- python - 在 python 中写入另一个文件使我的文件为空
- smartcontracts - TronBox 编译问题
- python - 多次运行一个函数的循环
- amazon-web-services - 使用 SDK 以编程方式获取 AWS CLI 文档
- html - 尽管我提供了 xpath,但我无法检索我想要的 url
- javascript - 从flask api连续发送数据到javascript前端
- openiddict - openiddict 禁用端点路由