プロジェクトをSDKバージョン27に更新し、サポートライブラリのプラグインをバージョン27.0.0
に変更したので、コードを変更する必要がありました。Androidサポートライブラリ27、Fragment update?
26.1.0
で、私はただで(Kotlin context
付き)getContext()
を使用することができ、私のFragment
(android.support.v4.app
)と私はNULL可能な問題を持っていないが、私はKotlinを使用するので、私はバージョン27.0.0
に問題を持っている、すべての私のcontext
の呼び出しはもう動作しませんでした、私はcontext!!
のように、安全作業が必要でしたが、私は個人的に、すべての時間が、私はちょうど自分自身、私は機能を回避
override fun getContext() = super.getContext()!!
なぜ変更が(突然、それがあることをもう一つ作っていること、行うにはハッスルであることがわかりましたので、尋ねる)方法はonCreateView()
とです。 onCreateView
ではインフレータがnullではない可能性がありますので、関数署名をonCreateView(inflater: LayoutInflater?...)
からonCreateView(inflater: LayoutInflater...)
に正しくオーバーライドし、createdView
のパラメータをonViewCreated
に正しく変更する必要がありました。
私はなぜ、特に(コトルのために)非常に醜いgetContext()
の変更が行われ、https://developer.android.com/sdk/support_api_diff/27.0.0/changes.htmlに向かうのだろうと思っていました。
しかし、待って、明らかに彼らはそれを変更しませんでしたか?だから私の質問は、私が何か間違っているのか、本当にそれを変えたのか、もしそうなら私はなぜそれを尋ねるのだろうか?ところで
は、同じことが、私はmHost == null
チェックが追加されたと思いますが、getActivity()
に適用されるとgetActivity
方法でも、最終的なので、私はそれが非常に非常に醜いなりますが、私の回避策を使用することはできません。実際にソースファイルでは、メソッドは同じように見えますが、26.1.0
にはKotlin戻り値タイプContext!
と27.0.0
戻り値タイプContext?
があります。
sligthly関連する...非ヌルインフレータは、UIを持たないが作業者として使用されるフレグメンツを意味します。 – cutiko
@cutikoあなたは何を意味するのか分かりません。 – creativecreatorormaybenot