何时使用PreferenceFragment和PreferenceFragmentCompat?

时间:2018-08-23 08:17:05

标签: android android-support-library android-preferences android-9.0-pie

我只是一个初学者,但是我对支持库有一些疑问。

  1. 每次 google 团队添加一个新的支持版本,它已弃用在新版本中的使用,因此,我们必须重做再次编写代码以支持新的API级别。不是这样,您可以拥有这个库,但不会获得额外功能。而不仅仅是弃用整个工作了吗?因此,制作android应用程序时需要做很多额外的工作。
  2. 为什么 Android P 中不推荐使用PreferenceFragment,并且两个库 PreferenceFragment和PreferenceFragmentCompat 的支持版本以及附加功能可以为您提供什么得到吗?

Android平台很棒,但是很难理解。如果开发人员开发了应用程序,那么在android发布新版本时有什么保证?在每个发行版中,功能或整个库都已弃用。

1 个答案:

答案 0 :(得分:2)

  

每次Google团队添加一个新的支持版本时,都会不赞成在新版本中使用它,因此,为此,我们不得不再次重做代码以支持新的API级别。

情况并非如此。在Android中,“已弃用”通常表示“我们有一些我们希望您使用的东西”。因此,尽管最终您应该尝试脱离已弃用的API,但“最终”可能要花费几年的时间。

  

为什么PreferenceFragment在Android P中不推荐使用

原生android.preference.PreferenceFragment在Android 9.0中已被弃用,主要是因为它继承自android.app.Fragment,后者在Android 9.0中已被弃用。这些年来,片段代码有很多错误。 Google试图引导开发人员使用库提供的片段实现,因为库可以保持最新状态,而较旧的Android设备(不幸的是)没有更新。

没有什么可以阻止您在Android 9.0中使用android.preference.PreferenceFragment的。理想情况下,随着时间的流逝,您将停止使用它,但是您无需删除所有内容并明天更改代码。

  

PreferenceFragment和PreferenceFragmentCompat库的支持版本是什么

AFAIK android.support.v14.preference.PreferenceFragment也应标记为已弃用,因为它也继承自android.app.Fragment

android.support.v7.preference.PreferenceFragmentCompatandroid.support.v4.app.Fragment的延伸,因此AFAIK这是您短期内应该使用的。

目前,整个“偏好设置”部分都有些混乱-我希望Google解决这一问题,并在接下来的几个月内向androidx迁移时提供更清晰的说明。