WindowInsetsControllerは簡単に使用できます

WindowInsetsControllerは、api30の後にandroidによって正式に提供されます。これは、ウィンドウのコントロールクラスを制御し、ウィンドウコントロールの単純さを実現するために使用されます。

WindowInsetsControllerを使用するには、コアバージョンを1.5.0以降に増やす必要があり、1.5以降の低いバージョンと互換性があります。

implementation 'androidx.core:core:1.5.0-alpha05'

WindowInsetsControllerのインスタンス化:

val controller = ViewCompat.getWindowInsetsController(view)

コントロールステータスバー

显示状态栏:
controller?.show(WindowInsetsCompat.Type.statusBars())

隐藏状态栏:
controller?.hide(WindowInsetsCompat.Type.statusBars())

状态栏文字颜色改为黑色:
controller?.isAppearanceLightStatusBars = true

状态栏文字颜色改为白色:
controller?.isAppearanceLightStatusBars = false

ナビゲーションバーを制御する

显示
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
目前可能跟部分手机手势有冲突

コントロールキーボード

(フォーカスを機能させるには、インターフェイスにEditTextがあり、EditTextが必要です)

显示键盘
controller?.show(WindowInsetsCompat.Type.ime())
隐藏键盘
controller?.hide(WindowInsetsCompat.Type.ime())

すべてのシステムバーを操作する

全屏显示:
 controller?.hide(WindowInsetsCompat.Type.systemBars())
显示其他系统栏:
controller?.show(WindowInsetsCompat.Type.systemBars())

 

おすすめ

転載: blog.csdn.net/jingzz1/article/details/111468726