Разница между использованием androidx.preference.PreferenceScreen и PreferenceScreen - PullRequest
0 голосов
/ 29 октября 2018

Мое приложение настроено на 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();
    }
}

А вот макет XML, используемый SettingsFragment.java

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)? Какая разница между двумя? Какая лучшая практика?

1 Ответ

0 голосов
/ 29 октября 2018

С документы :

AndroidX - это проект с открытым исходным кодом, который команда Android использует для разработка, тестирование, упаковка, версия и выпуск библиотек в Jetpack .

AndroidX - значительное улучшение по сравнению с оригинальной Android Поддержка Библиотека . Как и библиотека поддержки, AndroidX поставляется отдельно от ОС Android и обеспечивает обратную совместимость через Android релизы. AndroidX полностью заменяет библиотеку поддержки, предоставляя функция четности и новые библиотеки. Кроме того, AndroidX включает в себя следующие функции:

  • Все пакеты в AndroidX живут в согласованном пространстве имен, начинающемся со строки androidx. Пакеты поддержки библиотеки были сопоставлены с соответствующими androidx.* пакетами. Для полного картирования все старые классы и создавать артефакты для новых, см. Рефакторинг пакета Стр.

Итак, простыми словами, это новая библиотека, которую вы должны использовать вместо библиотеки поддержки, так как она имеет новейшие компоненты и функции.

Таким образом, ваш PreferenceScreen такой же, как androidx.preference.PreferenceScreen, но в комплекте с другой оболочкой.

...