Android支持库27,片段更新?
由于我更新了我的项目到SDK版本27和支持库的gradle插件到版本27.0.0
我需要更改我的代码。
26.1.0
我可以在我的Fragment
( android.support.v4.app
)中使用getContext()
(与Kotlin context
),我没有可空性的问题,但是因为我使用Kotlin我有一个版本27.0.0
的问题,我所有的context
调用都不再工作,我需要一个安全操作员,就像context!!
一样context!!
,但是因为我个人认为这是一个忙碌的做法,每次我只是让自己的解决方案功能
override fun getContext() = super.getContext()!!
另一个改变(突然,这就是为什么我问)是onCreateView()
和onViewCreated()
。 在onCreateView
的inflater不可能是null了,所以我需要改变我的函数签名正确覆盖从onCreateView(inflater: LayoutInflater?...)
onCreateView(inflater: LayoutInflater...)
和createdView
参数相同onViewCreated
。
所以现在我想知道为什么,特别是(对于Kotlin)非常丑陋的getContext()
更改,并转向https://developer.android.com/sdk/support_api_diff/27.0.0/changes.html 。
但是等一下,显然他们没有改变呢? 所以现在我的问题是如果我做错了什么,或者如果他们真的改变了,如果是的话,我可能会问他们为什么?
顺便说一下,同样适用于getActivity()
,我认为mHost == null
检查被添加,并且getActivity
方法甚至是最终的,所以我不能在那里使用我的解决方法,这使得它非常非常难看。 实际上在源文件中的方法看起来是一样的,但26.1.0
有Kotlin返回类型的Context!
和27.0.0
返回类型的Context?
。