我试图隐藏导航栏,使用我在互联网上描述的方法。
我有一个简单的布局,显示了WebView:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal"
android:id="@+id/layout" >
<WebView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
</RelativeLayout>
我在app启动时使用的代码是:
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN);
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE);
getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
web.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
layout.setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
但这并不隐藏导航栏。
我已添加......
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
...也参加了我的活动。
我怎样才能做到这一点?
答案 0 :(得分:5)
你可以隐藏导航栏,试试这个
public void FullScreencall() {
if(Build.VERSION.SDK_INT < 19) //19 or above api
View v = this.getWindow().getDecorView();
v.setSystemUiVisibility(View.GONE);
} else {
//for lower api versions.
View decorView = getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
decorView.setSystemUiVisibility(uiOptions);
}
}
答案 1 :(得分:4)
您无法永久隐藏平板电脑上的系统栏。
Android 4.1及更高版本上的 SYSTEM_UI_FLAG_HIDE_NAVIGATION
会隐藏系统栏,但只要用户执行任何操作,它就会重新出现。
答案 2 :(得分:0)
您无法隐藏给定框架内的导航栏。但是,如果您可以选择使用该设备,则可以解决此问题:
在HideBar中有一个选项可以在“Kiosk”模式下运行,在该模式下无法重新显示导航栏。不用说,你真的需要小心这一点。
答案 3 :(得分:0)
这可能会有所帮助:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setUiOptions(//
View.SYSTEM_UI_FLAG_FULLSCREEN|//
View.SYSTEM_UI_FLAG_IMMERSIVE|//
View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
setContentView(R.layout.main);
findViewById(R.id.main).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
v.setSystemUiVisibility(//
View.SYSTEM_UI_FLAG_FULLSCREEN|//
View.SYSTEM_UI_FLAG_IMMERSIVE|//
View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
}
});
}