我的应用程序以API 28为目标,并且有一个最小的API 15。作为支持库,我使用AndroidX。
我有一个由活动托管的偏好片段,如下所示:
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)?这两者有什么区别呢?什么是最佳做法?
发布于 2018-10-29 13:28:25
来自医生们
AndroidX是安卓团队用来在喷气背包中开发、测试、打包、版本和发布库的开源项目。 AndroidX是对最初的安卓支援图书馆的一个重大改进。和支持库一样,AndroidX独立于AndroidX,并提供了跨安卓版本的向后兼容性。AndroidX通过提供功能均等和新的库完全取代了支持库。此外,AndroidX还包括以下特性:
androidx开头的一致命名空间中。支持库包已经映射到相应的androidx.*包中。有关所有旧类和构建工件到新类的完整映射,请参见包重构页面。所以简单地说,这是一个新的库,您应该使用它而不是支持库,因为它有最新的组件和特性。
因此,您的PreferenceScreen与androidx.preference.PreferenceScreen相同,但与不同的包装器捆绑在一起。
https://stackoverflow.com/questions/53046401
复制相似问题