gpt4 book ai didi

Android DecorView setFitsSystemWindows

转载 作者:搜寻专家 更新时间:2023-11-01 08:47:09 25 4
gpt4 key购买 nike

我正在使用 AndroidResideMenu ( https://github.com/SpecialCyCi/AndroidResideMenu ),我发现了一个与 View 大小相关的问题。
该库通过扩充 FrameLayout、从 DecorView 中删除当前 View 并将其添加到新的 FrameLayout(还包含用于添加菜单项的 ScrollView 和阴影 View )来工作。
旧 View 保持其大小和位置,但新的 FrameLayout 似乎处于全屏模式,并且在菜单打开时隐藏在状态栏下方,如我在此处所述 (https://github.com/SpecialCyCi/AndroidResideMenu/issues/33)。
在 api14+ 设备中,可以通过在 ResideMenu 中添加对 setFitsSystemWindow(true) 的调用来解决问题,但我不知道在旧设备中该怎么做。
想法?

谢谢!

最佳答案

好吧,我找到了解决方案。只需实现方法fitSystemWindows(Rect insets),使该方法的文档中所说的内容(直到现在我一直误解):

The default implementation of this method simply applies the content insets to the view's padding, consuming that content (modifying the insets to be 0), and returning true. This behavior is off by default, but can be enabled through setFitsSystemWindows(boolean).

因此,在 ResideMenu 类中:

@Override
protected boolean fitSystemWindows(Rect insets) {
setPadding(paddingLeft + insets.left, paddingTop + insets.top, ...);
insets.left = insets.top = insets.right = insets.bottom = 0;
return true;
}

希望这对您有所帮助!

关于Android DecorView setFitsSystemWindows,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27060511/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com