android - 在 fragment 中隐藏状态栏

标签 android android-fragments android-toolbar android-titlebar

我试图在 fragment 中隐藏状态栏。 我已经成功隐藏了工具栏,但我也只想在一个 fragment 中隐藏状态栏..

  @Override
    public void onCreate(Bundle arg0) {
        super.onCreate(arg0);

   // requestWindowFeature(Window.FEATURE_NO_TITLE);

        ((HomeActivity)getActivity()).getSupportActionBar().hide();
    }

上面的代码可以很好地隐藏工具栏

  requestWindowFeature(Window.FEATURE_NO_TITLE);

如果我在 fragment onCreaterequestWindowFeature(上面提到过)应用程序崩溃了。

在实现@Mathan Chinna 的回答后添加了三个屏幕截图

  1. 普通屏幕

Normal Screen

  1. 实现@Mathan Chinna 的代码后

code from mathan chinna

  1. 当我从全屏模式回来时

When I come back from full screen

最佳答案

尽管只是从我的项目中复制粘贴,但这样您就可以在 fragment 中隐藏状态栏。

 private int currentApiVersion;       
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        getActivity().getWindow().getDecorView().setSystemUiVisibility(
                View.SYSTEM_UI_FLAG_LAYOUT_STABLE |
                View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
        currentApiVersion = android.os.Build.VERSION.SDK_INT;
        final int flags = View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                | View.SYSTEM_UI_FLAG_FULLSCREEN    
                | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;
        if(currentApiVersion >= Build.VERSION_CODES.KITKAT) {
            getActivity().getWindow().getDecorView().setSystemUiVisibility(flags);
            final View decorView = getActivity().getWindow().getDecorView();
            decorView.setOnSystemUiVisibilityChangeListener(new View.OnSystemUiVisibilityChangeListener() {
                @Override
                public void onSystemUiVisibilityChange(int visibility) {
                    if ((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0) {
                        decorView.setSystemUiVisibility(flags);
                    }
                }
            });
        }
        return inflater.inflate(R.layout.yourLayout, container, false);
    }

请记住,此代码将复制到您的 Fragment 类中,而不是复制到任何方法中。

是的,您可以只使用以下代码:

getActivity().getWindow().getDecorView().setSystemUiVisibility(
                View.SYSTEM_UI_FLAG_LAYOUT_STABLE |
                View.SYSTEM_UI_FLAG_FULLSCREEN);

关于android - 在 fragment 中隐藏状态栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47863277/

相关文章:

android - 连接 BTooth 模块时上传 Arduino 程序 avrdude : stk500_getsync(): not in sync: resp=0x45

Android Studio焦点-切换到ClassFile

java - Android:从 Volley 回调中填充 fragment 中的 ListView

java - 如何动态刷新 viewpager 中的 fragment ?

android - 如何使工具栏上的操作菜单居中

android - 将自定义 View 添加到工具栏

android - 用于通过单跳 Wi-Fi 网络从 Android 设备上传大型二进制文件 (50-200 MB) 的 HTTP 与 Vanilla 套接字

java - 将项目添加到 fragment 中的 ListView 中

android - 根据显示的 fragment 替换工具栏布局

iphone - 使用 XMLVM 将 android 应用程序转换为 iphone 应用程序