2

私はこのリスナーを持っています:

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にメッセージを出力するのを見ることができます.

4

1 に答える 1