什么是 ScrimInsetsFrameLayout?

What is ScrimInsetsFrameLayout?

什么是 ScrimInsetsFrameLayout?

我在带工具栏的导航抽屉中工作,在大部分教程中他们使用 ScrimInsetsFrameLayout, 它的用途是什么,谁能解释一下?

它是一组 类 的一部分,首先(我认为)出现在 Google 的 iosched 中。 Google 已提供源代码 on GitHub here

值得下载看看

ScrimInsetsFrameLayout 有评论 - 在传递给 {@link #fitSystemWindows(Rect)} 的插图中绘制内容的布局,即 UI chrome 以上的区域 (状态和导航栏、叠加操作栏)。

如果您下载编译安装应用程序,您可以看到DrawerLayout位于ToolBar上方和屏幕边缘。 ScrimInsetsFrameLayout 允许您执行此操作。

您还可以看到 ScrimInsetsFrameLayout 扩展了 FrameLayout,而 FrameLayout 又扩展了 ViewGroup 和 View。视图引用了 setFitsSystemWindows,它允许您在使用 ScrimInsetsFrameLayout 的 xml 文件中设置 android:fitsSystemWindows="true"。

您可以在没有它的情况下执行 DrawerLayout,但外观非常干净并且符合 Google 的 Material 设计目标。