Please note, that the status bar and the navigation bar are two completely different things. The navigation bar contains the back, home, and recent apps buttons, while the status bar contains the notifications, clock, battery, etc... The status bar can be easyly hidden with flags like SYSTEM_UI_FLAG_FULLSCREEN
, but more convenient, using this as your app base theme:
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
In tablets, the navigation bar often consists the status bar, so if the navbar is visible, the status bar will be too. You can't just hide the status bar, because then you would have to hide the nav bar too.
The purpose of you can't hide the navigation bar forever, is that the user must be able to control his device and navigate as he wants to.
You can't hide the navigation bar before 4.0, and as in the developer guide says, you can hide the nav bar with the SYSTEM_UI_FLAG_HIDE_NAVIGATION
flag, however, it won't stay hidden once the user touches the tablet. More explanation here: Android Developers - Hiding the Navigation Bar
In 4.4 KitKat, a new API was introduced, the immersive mode, with that you can hide the navigation bar and still make the user to be able to interact with your app, without the navigation bar revealing itself. The user can swipe down from the bottom of his screen to make it visible again, this clears the SYSTEM_UI_FLAG_IMMERSIVE
flag. If you want to make the navigation bar disappear when the user doesn't interact with it, then you can use the SYSTEM_UI_FLAG_IMMERSIVE_STICKY
flag, so it will disappear if the user finishes with it. More explanation here: Android Developers - Android 4.4 API
Also immersive tutorial: Android Developers - Using Immersive Full-Screen Mode
Also, make sure you are targetting the API 19, and only use this flag, when your app runs on API 19 or later. More on checking API version: Here (StackOverflow)