Tim*_*mmm 1 layout android fullscreen
我在a中使用此代码VideoView试图隐藏运行Android(CyanogenMod)4.1的触控板上的导航栏.
setSystemUiVisibility(SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| SYSTEM_UI_FLAG_FULLSCREEN
| SYSTEM_UI_FLAG_HIDE_NAVIGATION);
Run Code Online (Sandbox Code Playgroud)
不幸的是它完全没有效果,也没有错误.我不知道要寻找什么(我感谢"它不起作用"并不是很有帮助,但我认为这是你需要使用的唯一代码行,并且因为有没有错误...)
我尝试了各种各样的变化 - getWindow().getDecorView().setSystemUiVi...在多个地方,在计时器等处进行.这段代码肯定已达到,但它根本没有做任何事情.
哦多么可笑.在阅读源代码 - 这通常是在Android-land中查找内容的唯一方法之后 - 我发现了以下未记录的事实:
setSystemUiVisibility()仅在您调用它的视图可见时才有效!
更多:您调用setSystemUiVisibility()的视图必须保持可见,导航栏才能保持隐藏状态.感谢您记录这些家伙,非常棒.
这是相关的代码View.java.
void performCollectViewAttributes(AttachInfo attachInfo, int visibility) {
if ((visibility & VISIBILITY_MASK) == VISIBLE) {
if ((mViewFlags & KEEP_SCREEN_ON) == KEEP_SCREEN_ON) {
attachInfo.mKeepScreenOn = true;
}
attachInfo.mSystemUiVisibility |= mSystemUiVisibility;
ListenerInfo li = mListenerInfo;
if (li != null && li.mOnSystemUiVisibilityChangeListener != null) {
attachInfo.mHasSystemUiListeners = true;
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5015 次 |
| 最近记录: |