私はこのリスナーを持っています:
val listener = WindowInsetsControllerCompat.OnControllableInsetsChangedListener { controller: WindowInsetsControllerCompat, typeMask: Int ->
Log.i(FragmentVodPlayer.TAG, "onControllableInsetsChanged: changed")
if (typeMask and WindowInsetsCompat.Type.statusBars()
== WindowInsetsCompat.Type.statusBars()
|| typeMask and WindowInsetsCompat.Type.navigationBars()
== WindowInsetsCompat.Type.navigationBars()
) {
hideAfterAWhile.postDelayed({
controller.hide(
WindowInsetsCompat.Type.navigationBars()
or WindowInsetsCompat.Type.statusBars()
)
}, 3000)
}
}
そして、私はそれをinstetsController
次のように追加しています:
insetsController.addOnControllableInsetsChangedListener(listener)
私が実行しているときはうまくいきます:
insetsController.hide(
WindowInsetsCompat.Type.statusBars()
or WindowInsetsCompat.Type.navigationBars()
)
しかし、画面をタップしてナビゲーション バーが表示されると、このリスナーは決してトリガーされません。
システムバーを非表示にすると、このリスナーが機能することを知っています.logcatにメッセージを出力するのを見ることができます.