【发布时间】:2016-03-30 11:17:16
【问题描述】:
我正在编写一个具有一个活动和一堆片段的应用程序,其中一个片段是全屏的。为了实现这一点,我正在尝试使用 System UI Visibility 标志。
对于全屏片段,我设置了可见性:
layout.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);
只要我这样做,窗口插图就会更改为似乎没有任何意义的值。然后,当我退出该全屏片段时,我的视图上的填充错误(基于奇怪的插图)
有人知道这里发生了什么吗?我理解窗口插图的方式一定是错误的,因为这种行为似乎完全违反直觉。任何见解将不胜感激。
要查看我为说明问题而编写的测试应用程序的完整源代码,请转到此处:
【问题讨论】:
-
我会在您的 visiblitytest 项目中修复一些其他不影响插入问题的问题:即使您在 @987654329 中隐藏系统 UI,您的
systemUiVisile默认为true@(应该是false),你应该隐藏onCreateView()中的动作栏以与按钮保持一致,你应该重置onDestroyView()中的systemUI/action bar,你应该respond to UI visibility changes以确保你的动作栏与 UI 可见性保持同步。 -
我没有在 onCreateView 中隐藏系统 ui,而是将片段的布局设置为
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION,这只会告诉视图布局 好像系统 ui 被隐藏。在单击按钮之前,我实际上并没有隐藏系统 ui。这就是 systemUiVisible 默认为 true 的原因。 -
从任何附加布局调用 setSystemUiVisibility() 是相同的(注意the training sample 上的注释),因为它立即设置系统 UI 可见性 - 在未附加视图上调用它是问题的根源。
-
我并不是说这不是问题,我只是说您在 onCreateView 中隐藏系统 ui 的评论在技术上不正确。我没有在 onCreateView 中隐藏系统 ui,我只是将布局设置为全屏。我会在答案部分评论您的解决方案。
-
啊,您更改了代码 - 您的原始代码没有使用
LAYOUT标志。
标签: android user-interface android-fragments