【发布时间】:2016-03-21 15:55:31
【问题描述】:
我已经阅读了一些关于已弃用代码的文章和答案(包括 this one),但我对如何处理(特别是)已弃用的 Fragment 事件处理程序 onInflate 有点困惑。
我已经替换了我的实现
public void onInflate(Activity activity, AttributeSet attrs, Bundle savedInstanceState)
与
public void onInflate(Context context, AttributeSet attrs, Bundle savedInstanceState)
如果我在
如果我恢复原来的弃用代码(这样我现在已经实现了这两种方法),那么将调用弃用的代码,返回正确的功能,但现在正在调用弃用的方法(?)。
当我在 API23 机器上运行应用程序时,似乎调用了两个版本的处理程序。
所以问题是,这里发生了什么? 如果我正在编写应该在 API23 和更早版本上运行的代码,我是否需要实现已弃用的方法以及新的方法?
如果是这种情况,我是否需要“以防万一”寻找并实施其他已弃用的方法? (因此,是否有这些已弃用的“回码”方法的列表?)
更新:
我现在已经从使用android.app.Fragment 更改为android.support.v4.app.Fragment(即从原生片段到支持片段)并且应用程序现在按预期执行,替换处理程序代码针对所有版本运行,并且正在逐步通过 android来源如预期。
但问题仍然存在:为什么?
为什么“本机”android.app.Fragment 实现被 **** 了?回顾之前的问题,这个问题早在 2015 年 9 月就被讨论过了。那么为什么它仍然是一个问题? 为什么在 API 11 之后的支持和原生 Fragment 的实现应该有所不同?
【问题讨论】:
-
感谢您将 depreciated 编辑为 deprecated。我从来没有意识到我有阅读障碍! :)