Когда использовать PreferenceFragment и PreferenceFragmentCompat?

Я только начинающий, но у меня есть несколько вопросов, касающихся библиотеки поддержки.

  1. Каждый раз, когда команда Google добавляет новую версию службы поддержки, она не одобряет использование в новой версии, поэтому из-за этого нам приходится заново переделывать код, просто чтобы поддерживать новый уровень API. Не так, вы можете иметь эту библиотеку, но вы не будет получать дополнительные функции. Вместо того, чтобы просто осудить всю работу? Из-за этого есть много дополнительной работы, чтобы сделать приложение для Android.
  2. Почему PreferenceFragment устарел в Android P и каковы версии поддержки для обеих библиотек PreferenceFragment и PreferenceFragmentCompat, а также какие дополнительные функции вы хотите получить?

Платформа Android удивительна, но это трудно понять. Если разработчик создал приложение, какова гарантия, что оно будет работать, когда Android выпустит новую версию? С каждым выпуском что-то осуждается либо как функция, либо вся библиотека.

1 ответ

Каждый раз, когда команда Google добавляет новую версию службы поддержки, она не одобряет использование в новой версии, поэтому из-за этого нам приходится снова переделывать код, чтобы поддерживать новый уровень API.

Это не относится к делу. "Устаревшее" в Android обычно означает "у нас есть то, что мы бы предпочли использовать". Таким образом, хотя в конечном итоге вы должны попытаться удалить устаревшие API-интерфейсы, "в конечном итоге" может быть порядка пары лет.

Почему PreferenceFragment устарел в Android P

Родной android.preference.PreferenceFragment устарел в Android 9.0, в основном потому, что он наследуется от android.app.Fragment, который был устарел в Android 9.0. В коде фрагмента было много ошибок за эти годы. Google пытается подтолкнуть разработчиков к использованию поставляемой библиотекой реализации фрагментов, поскольку библиотеки могут обновляться, в то время как старые устройства Android (к сожалению) не получают обновлений.

Ничто не мешает вам использовать android.preference.PreferenceFragment в Android 9.0, если хотите. В идеале, со временем вы перестанете его использовать, но вам не нужно все отбрасывать и менять свой код завтра.

Какие версии поддержки для обеих библиотек PreferenceFragment и PreferenceFragmentCompat

насколько мне известно android.support.v14.preference.PreferenceFragment также должен быть помечен как устаревший, так как он также наследуется от android.app.Fragment,

android.support.v7.preference.PreferenceFragmentCompat простирается от android.support.v4.app.Fragmentи поэтому AFAIK это тот, который вы должны использовать в краткосрочной перспективе.

Весь этот фрагмент предпочтений в настоящий момент немного запутан - я надеюсь, что Google уладит это и предоставит более четкие инструкции в рамках перехода к androidx в течение следующих нескольких месяцев.

Другие вопросы по тегам