android - PreferenceFragmentCompat 没有采用正确的 androidx PreferenceScreen
问题描述
我正在尝试使用创建首选项屏幕,但是,当我按照本指南https://developer.android.com/guide/topics/ui/settings.htmlandroidx.preference:preference:1.0.0
创建设置 xml 文件时,它正在使用平台。Preferences
因为它正在android.preference
使用,我不能使用'SeekBarPreferece which is only in
androidx`,这就是它显示警告的原因。
我可以将包名称更改为适合androidx
的名称。但是,现在它没有找到它并且可以检查参考(它找到PreferenceScreen
但PreferenceCategory
没有SeekBarPreference
在同一个包中。
你们中有人遇到过吗?这是代码:
class SettingsFragment : PreferenceFragmentCompat() {
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
setPreferencesFromResource(R.xml.settings, rootKey)
}
}
<PreferenceScreen
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
<PreferenceCategory
app:title="@string/settings_notifications">
<SwitchPreference
app:key="notifications"
app:title="@string/settings_news"
android:icon="@drawable/menu_icon_news"
android:summaryOff="@string/settings_news_off"
android:summaryOn="@string/settings_news_on"/>
<SeekBarPreference
app:key="feedback"
app:title="@string/settings_aviso_level"
android:max="5"
android:defaultValue="5"
android:icon="@drawable/ic_notifications_black_24dp"
/>
</PreferenceCategory>
</PreferenceScreen>
编辑: 我在 Android Studio 3.4 中遇到了这个问题,它在 3.5 中得到了修复
解决方案
您使用的是哪个版本的 Android Studio?这已在 3.5 中修复,因此如果您使用的是最新版本,它应该可以工作。
无论如何,这只是工作室显示的警告 - 这并不意味着它正在使用android.preference.*
类。如果您从内部使用 xml 文件androidx.preference.*
,即使用 a PreferenceFragmentCompat
,那么它将正确使用androidx
类 - 所以它应该可以正常工作,您可以忽略它,直到您更新 Android Studio。
您可以只使用类名,例如SeekBarPreference
,也可以使用完全限定名,androidx.preference.SeekBarPreference
并且在构建和运行应用程序时两者都应该工作。
推荐阅读
- php - 在 Laravel 广播中从多个私有频道发送通知
- python - Tkinter 跟踪窗口专门调整大小?
- react-native - 是否不可能在 React Native 中使用 2 个彼此具有不同 numColumns 的 FlatList?
- python - 使用 Python Click 将具有特殊字符的 CLI 参数视为字符串
- tmux - tmux 在发送密钥时因“服务器意外退出”而失败
- azure - 使用 power-shell 在 azure 中注册具有多个订阅的多个资源提供程序
- validation - Codeigniter4 表单验证
- excel - 找到匹配的夫妇以最大化总和
- azure-functions - 在 Azure 上部署后 Azure 功能不起作用?
- python - 如何一次运行两个无限循环python类