详细问题描述
[内容]
设置fullscreen为true只有状态栏隐藏,导航栏显示,不知道官方的沉浸式代码如何写的。
自己写了隐藏代码,可是例如
plus.nativeUI.showWaiting("正在处理...");
//弹出系统组件时底部的导航栏就会弹出
private static Handler sHandler;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
//隐藏操作菜单
sHandler = new Handler();
sHandler.post(mHideRunnable); // hide the navigation bar
final View decorView = getWindow().getDecorView();
decorView.setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener(){
@Override
public void onSystemUiVisibilityChange(int visibility){
if ((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0) {
//现在系统状态栏,导航栏处于显示状态。
Log.e("屏幕", "导航栏处于显示状态");
sHandler.post(mHideRunnable); // hide the navigation bar
}else {
//系统状态栏,导航栏处于 消失 状态
Log.e("屏幕", "导航栏处于消失状态");
}
}
});
if (mEntryProxy == null) {
FrameLayout f = new FrameLayout(this);
// 创建5+内核运行事件监听
WebappModeListener wm = new WebappModeListener(this, f);
// 初始化5+内核
mEntryProxy = EntryProxy.init(this, wm);
// 启动5+内核
mEntryProxy.onCreate(this, savedInstanceState, SDK.IntegratedMode.WEBAPP, null);
setContentView(f);
}
}
@Override
public void onWindowFocusChanged(boolean hasFocus) {
super.onWindowFocusChanged(hasFocus);
if (hasFocus) {
sHandler.post(mHideRunnable);
}
}
Runnable mHideRunnable = new Runnable() {
@Override
public void run() {
int flags;
int curApiVersion = android.os.Build.VERSION.SDK_INT;
// This work only for android 4.4+
if(curApiVersion >= Build.VERSION_CODES.KITKAT){
// This work only for android 4.4+
// hide navigation bar permanently in android activity
// touch the screen, the navigation bar will not show
flags = View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
}else{
// touch the screen, the navigation bar will show
flags = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION;
}
// must be executed in main thread :)
getWindow().getDecorView().setSystemUiVisibility(flags);
}
};
运行环境
[系统版本]
安卓4.4.2
LFZ (作者)
我想知道如何监听弹窗?还有不知道为什么监听到了不是全屏的时候(弹窗的时候),然后动态设置全屏不生效,必须是弹窗消息才生效变为全屏。我想知道你们是如何动态设置状态来隐藏的。
2016-07-18 11:39