我的应用程序以API 28
为目标,并具有最小API 15
。作为支持库,我正在使用AndroidX
。
我有一个 Activity 托管的首选项 fragment ,如下所示:
SettingsFragment.java
package com.example.app;
import android.os.Bundle;
import androidx.preference.PreferenceFragmentCompat;
public class SettingsFragment extends PreferenceFragmentCompat {
@Override
public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
setPreferencesFromResource(R.xml.preferences, rootKey);
}
}
SettingsActivity.java
package com.example.app;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
public class SettingsActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getSupportFragmentManager().beginTransaction().replace(android.R.id.content, new SettingsFragment()).commit();
}
}
这是
SettingsFragment.java
使用的XML布局preferences.xml
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<SwitchPreference
android:defaultValue="false"
android:key="pref_switch"
android:title="@string/switch" />
</PreferenceScreen>
作为首选项层次结构的根,我应该使用
PreferenceScreen
还是androidx.preference.PreferenceScreen
来使布局实际上向后兼容(使用AndroidX)?两者有什么区别?最佳做法是什么? 最佳答案
从the docs:
简而言之,您应该使用新的库而不是支持库,因为它具有最新的组件和功能。
因此,您的PreferenceScreen
与androidx.preference.PreferenceScreen
相同,但 bundle 了不同的包装器。
关于android - 使用androidx.preference.PreferenceScreen和PreferenceScreen之间的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53046401/