如何删除导航栏和状态栏?

时间:2020-06-11 00:50:33

标签: java android

我需要该应用程序不显示导航和状态栏。 How to hide navigation bar in Android app? 我使用了此解决方案,但是当我单击EditText时,导航和状态栏再次出现。

该怎么办才不会再来?

6 个答案:

答案 0 :(得分:0)

您可以使用Fullscreen layout就像在Android的启动画面中一样,隐藏导航和状态栏。

答案 1 :(得分:0)

尝试一下。

   @Override
public void onWindowFocusChanged(boolean hasFocus) {
    super.onWindowFocusChanged(hasFocus);
    // When the window loses focus (e.g. the action overflow is shown),
    // cancel any pending hide action. When the window gains focus,
    // hide the system UI.
    if (hasFocus) {
        delayedHide(300);
    } else {
        mHideHandler.removeMessages(0);
    }
}

private void hideSystemUI() {
    getWindow().getDecorView().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_LOW_PROFILE | 
        View.SYSTEM_UI_FLAG_IMMERSIVE
    );
}

private void showSystemUI() {
    getWindow().getDecorView().setSystemUiVisibility(
        View.SYSTEM_UI_FLAG_LAYOUT_STABLE | 
        View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | 
        View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
    );
}

private final Handler mHideHandler = new Handler() {
    @Override
    public void handleMessage(Message msg) {
        hideSystemUI();
    }
};

private void delayedHide(int delayMillis) {
    mHideHandler.removeMessages(0);
    mHideHandler.sendEmptyMessageDelayed(0, delayMillis);
}

答案 2 :(得分:0)

使用onCreate方法将其添加到您希望全屏显示的活动中。 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

此外,将其添加到清单文件中的同一活动标签中: android:theme="@style/Theme.AppCompat.NoActionBar"

例如

 <activity
    android:name=".Account.SplashActivity"
    android:theme="@style/Theme.AppCompat.NoActionBar">
</activity>

答案 3 :(得分:0)

非常简单,您可以尝试这些简单的步骤来实现您想要的功能。但是我不知道您要删除哪种导航栏。

实际上,您可以在不显示状态栏的情况下实现全屏显示,这是解决方法:

    //no status bar
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);

答案 4 :(得分:0)

您只需添加:

    android:name=".Account.SplashActivity"
    android:theme="@style/Theme.AppCompat.NoActionBar">
</activity>

简单!

答案 5 :(得分:0)

在活动onCreate()

中调用此函数
  fun Activity.makeFullScreen() {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                window.apply {
                    clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
                    addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS)
                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
                        decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
                    } else {
                        decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                    }
                }
            }