Панель навигации планшета Android не скроется
Я пытаюсь скрыть панель навигации, используя методы, которые я нашел, описанные в Интернете.
У меня есть простой макет, который показывает 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>
Код, который я использую при запуске приложения:
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"
... к моей деятельности тоже.
Как мне этого добиться?
3 ответа
Вы не можете надолго скрыть системную панель на планшете.
SYSTEM_UI_FLAG_HIDE_NAVIGATION
на Android 4.1 и выше будет скрыта системная панель, но она появится снова, как только пользователь что-нибудь сделает.
Вы можете скрыть панель навигации, попробуйте это
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);
}
}
Может быть, это поможет:
@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);
}
});
}
Вы не можете скрыть панель навигации в рамках данного каркаса. Тем не менее, есть обходной вариант, если у вас есть возможность рутировать устройство:
В HideBar есть опция для запуска в режиме "Киоск", в котором нет возможности повторно отобразить панель навигации. Излишне говорить, что вам действительно нужно быть осторожным с этим.