WindowInsetsController es proporcionado oficialmente por android después de api30. Se usa para controlar la clase de control de la ventana y darse cuenta de la simplicidad del control de la ventana.
Para usar WindowInsetsController, debe aumentar la versión principal a 1.5.0 o superior, y puede ser compatible con versiones inferiores posteriores a la 1.5.
implementation 'androidx.core:core:1.5.0-alpha05'
Crear una instancia de WindowInsetsController:
val controller = ViewCompat.getWindowInsetsController(view)
Barra de estado de control
显示状态栏:
controller?.show(WindowInsetsCompat.Type.statusBars())
隐藏状态栏:
controller?.hide(WindowInsetsCompat.Type.statusBars())
状态栏文字颜色改为黑色:
controller?.isAppearanceLightStatusBars = true
状态栏文字颜色改为白色:
controller?.isAppearanceLightStatusBars = false
Controla la barra de navegación
显示
controller?.show(WindowInsetsCompat.Type.navigationBars())
隐藏
controller?.hide(WindowInsetsCompat.Type.navigationBars())
//导航栏隐藏时手势操作
controller?.systemBarsBehavior = WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
//systemBarsBehavior有三个值:
BEHAVIOR_SHOW_BARS_BY_SWIPE
BEHAVIOR_SHOW_BARS_BY_TOUCH
BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
目前可能跟部分手机手势有冲突
Teclado de control
(Necesita tener EditText en la interfaz y EditText para que el enfoque funcione)
显示键盘
controller?.show(WindowInsetsCompat.Type.ime())
隐藏键盘
controller?.hide(WindowInsetsCompat.Type.ime())
Operar todas las barras del sistema
全屏显示:
controller?.hide(WindowInsetsCompat.Type.systemBars())
显示其他系统栏:
controller?.show(WindowInsetsCompat.Type.systemBars())