+-
在React Native中隐藏Android导航栏
如何在React Native中隐藏 Android Navigation Bar?

我指的是屏幕底部的栏,它有软件后退按钮和主页按钮,而不是导航器组件附带的页面顶部的组件.

Android Navigation Bar

This page on android.com解释了如何为本机开发人员执行此操作.有人可以通过React Native应用程序解释如何实现这一目标吗?谢谢.

最佳答案
如果您希望永久实现此目标,则必须在创建应用程序时以及重新关注时隐藏Navbar.

为此,请在MainActivity.java中添加:

...
import android.os.Bundle;
import android.view.View;

public class MainActivity extends ReactActivity {

    ...

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        hideNavigationBar();
    }

    @Override
    public void onWindowFocusChanged(boolean hasFocus) {
        super.onWindowFocusChanged(hasFocus);
        if (hasFocus) {
            hideNavigationBar();
        }
    }

    private void hideNavigationBar() {
        getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
    }
}

您可能希望将其设置为“身临其境”,以便用户仍然可以通过从屏幕底部拉出来访问导航栏.
为此,请添加View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY标志:

...
import android.os.Bundle;
import android.view.View;

public class MainActivity extends ReactActivity {

    ...

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        hideNavigationBar();
    }

    @Override
    public void onWindowFocusChanged(boolean hasFocus) {
        super.onWindowFocusChanged(hasFocus);
        if (hasFocus) {
            hideNavigationBar();
        }
    }

    private void hideNavigationBar() {
        getWindow().getDecorView().setSystemUiVisibility(
            View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
            | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);

    }
}

您可以在android documentation上找到更多选项.

点击查看更多相关文章

转载注明原文:在React Native中隐藏Android导航栏 - 乐贴网