Siddharthan
Siddharthan

Reputation: 39

Hiding the Navigation Bar

I want to hide navigation Bar(all screen) in my app. Below code hiding navigation bar.But if i click the edit text again navigation bar appear. How to hide?

@Override
protected void onCreate(Bundle savedInstanceState) {
 View decorView = getWindow().getDecorView();
    decorView.setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() {
        @Override
        public void onSystemUiVisibilityChange(int visibility) {
            if ((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0) {
                decorView.setSystemUiVisibility(
                        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);
            }
        }
    });
}

Upvotes: 3

Views: 25241

Answers (5)

yEmreAk.com
yEmreAk.com

Reputation: 3906

Add these thing to your project;

class MainActivity : Activity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        // Removing nav. bar.
        window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
        setContentView(R.layout.activity_main)
    }

    override fun onWindowFocusChanged(hasFocus: Boolean) {
        super.onWindowFocusChanged(hasFocus)
        if (hasFocus) {
            window.decorView.systemUiVisibility = (View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                    or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                    or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                    or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                    or View.SYSTEM_UI_FLAG_FULLSCREEN
                    or View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY)
        }
    }
}

Upvotes: 4

Rob
Rob

Reputation: 1047

    View decorView = getWindow().getDecorView();
    int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
            | View.SYSTEM_UI_FLAG_FULLSCREEN;
    decorView.setSystemUiVisibility(uiOptions);

Upvotes: -2

Android Geek
Android Geek

Reputation: 9225

Simply use in AndroidManifest.xml

 <activity
        android:name=".MainActivity"
        android:label="@string/title_activity_main"
        android:theme="@style/AppTheme.NoActionBar" />

where @style/AppTheme.NoActionBar is in style.xml

 <style name="AppTheme.NoActionBar">
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
    </style>

Upvotes: 6

edwoollard
edwoollard

Reputation: 12335

From what I can understand from your question, you want your application to remove the `ActionBar' and be completely full screen. If that is the case, you will want to do two particular things, depending on the targeting version of your app:

If > 4.1:

View decorView = getWindow().getDecorView();
// Hide the status bar
int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);
// Remember that you should never show the action bar if the
// status bar is hidden, so hide that too if necessary.
ActionBar actionBar = getActionBar();
actionBar.hide();

Else if < 4.1:

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // If the Android version is lower than Jellybean, use this call to hide
        // the status bar
        if (Build.VERSION.SDK_INT < 16) {
            getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
        }
        setContentView(R.layout.activity_main);
    }
}

Please let me know if this solves your issue. If not, we can determine exactly what is going wrong and take it from there. I hope this helps.

Upvotes: 0

Sush
Sush

Reputation: 3874

you can do it by using below line of code in manifest for application tag

android:theme="@android:style/Theme.NoTitleBar.Fullscreen"

What you have tried is immersive mode of the screen. Where on user interaction navigation bar is shown.

Upvotes: 2

Related Questions