0
点赞
收藏
分享

微信扫一扫

「WinddowInsets(二)」我们能用WindowInsets做什么?

蚁族的乐土 2022-01-20 阅读 100
android

WindowInsets

我们能用WindowInsets做什么?

首先,之前第一篇介绍过WindowInsets,它就是一些「系统视图」。那我要它干嘛,我平时开发都是直接xml中或者compose中直接就开始编写contentView了,根本不关心这什么Insets,爱谁谁。

但是当你知道Insets能做的事情,你将会实现更多「牛逼」UI效果了。

多牛逼?

全屏绘制内容

在以前我们绘制全屏内容都需要给Activity设置各种UI的FLAG,以致于UI可以绘制成全屏,然后动态计算一些状态栏的高度等。
现在你有WindowInsets后,只需要一行代码,即可实现。如何实现:

在这里插入图片描述

Edge-To-Edge

你可以将部分绘制内容绘制到状态栏下了。
在这里插入图片描述
哎,不对哎?这不就是全屏吗?有什么区别?嘻嘻,跟普通全屏来说就不一样了,当你全屏后,你会发现,我的下面的内容被「三大金刚(返回、桌面、最近任务)给挡住了,那我不得不在布局文件做固定的偏移或者代码动态偏移啊」,那我怎么知道是「三大金刚」还是「手势导航」呢?

没错,WindowInsets会告诉你哦~参考:

可以绘制任务状态栏的的风味

例如:

  • 全屏
  • 滚动的时候可将内容滚动到状态栏
  • 滚动的时候部分内容可以滚动到状态栏
  • 状态栏的颜色
  • 状态栏的内容
  • 状态栏反色等

可以说它非常强。上面介绍的比较简单,得先大致了解到它能干什么后,我们继续介绍它怎么做到的啊?

举报

相关推荐

0 条评论