【发布时间】:2019-11-05 04:55:41
【问题描述】:
我正在使用单个活动 - 带有底部导航栏的多个片段架构。有一些片段使用稳定的布局标志,而另一些片段使用全屏布局标志。但是,当从 SYSTEM_UI_FLAG_LAYOUT_STABLE 切换到 SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN(反之亦然)时,内容不会正确填满屏幕 - 当切换到稳定时,底部会被向下推过导航,当切换回全屏时,内容不会正确填充屏幕。如果我从那个片段切换到另一个全屏片段,问题就会自行纠正。我想知道是否有办法从一开始就防止这个问题发生。
这是我用来在稳定和全屏之间切换的代码:
fun makeFullScreen() {
window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_STABLE or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
}
fun makeStable() {
window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_STABLE
}
各自的函数在每个片段的 onResume() 函数中被调用。任何帮助将不胜感激。
您可以在此处查看问题的屏幕截图:https://imgur.com/a/B7qh98Y
谢谢
编辑1:澄清一下,我基本上希望底部导航栏保持在底部的正确位置,而不是您在屏幕截图中看到的“跳跃”行为。
【问题讨论】:
-
您在进行切换时是否尝试过
activity.recreate(),如果没有其他效果? -
我认为这可能会起作用,唯一的事情是在我的脑海中,我不知道如何做到这一点而不会陷入无限循环。虽然我只尝试直接从片段而不是从主机活动中调用它
标签: android android-layout android-fragments