WindowInsetsController简单使用

WindowInsetsController是android官方在api30之后提供,用于控制window的控制类,实现window控件的简单化

要使用WindowInsetsController,需要先将core版本提高到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())

 

  • 18
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值