То, что я реализовал, выглядит следующим образом.
Я установил это в упражнении.
window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN)
Строка состояния должна быть не спрятана, а просто панель управления.
И затем, когда я открываю диалог и закрываю его, я вызываю этот метод ниже:
private fun setDefaultUi(dialog: Dialog?) {
var decorView: View? = null
if (dialog == null) {
decorView = this.window.decorView
} else {
decorView = dialog!!.window.decorView
}
decorView.systemUiVisibility = (
View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION // hide nav bar
or View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY // hide status bar and nav bar after a short delay, or if the user interacts with the middle of the screen
)
}
что-то вроде этого:
private fun showMyDialog() {
noticeUrlDialog = Dialog(this)
noticeUrlDialog!!.setContentView(R.layout.dialog_my)
val btnClose = myDialog!!.btn_close
btnX.setOnClickListener {
myDialog!!.dismiss()
setDefaultUi(null)
}
myDialog!!.show()
setDefaultUi(myDialog)
}
Таким образом, я могу скрыть нижнюю панель управления, котораяпоявляется после того, как всплывает и закрывается диалоговое окно.
Но я не думаю, что это правильный путь.Мне нужно многократно вызывать метод. Кроме того, панель управления отображается за секунду до setDefaultUi()
.Итак, я хотел бы знать, есть ли лучший способ?