Android中隐藏顶部状态栏的那些坑——Android开发之路3

Android中隐藏顶部状态栏的那些坑

先看看常规的隐藏状态栏的方法:

方法一:

@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //去除title
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        //去掉Activity上面的状态栏
      getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
        setContentView(R.layout.video_view);
        initView();
    }

坑1:上文中设置隐藏顶部状态栏的代码必须放在setContentView(R.layout.video_view);之前很多时候这种方法并不起作用。所以推荐第二种方法

方法二:

<activity
            android:name="*.Activity"
            android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
</activity>

将:android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 这行代码放在单独的Activity中只对当前Activity有效,如果要使整个APP起作用放到Application即可

坑2:android:theme="@android:style/Theme.NoTitleBar.Fullscreen"这行代码如果在Application中配置的话,整个APP的Activity都只能是继承自Activity,不能是AppCompatActivity,因为AppCompatActivity下的Theme只能是ActionBar样式的;

坑3:android:theme="@android:style/Theme.NoTitleBar.Fullscreen这行代码如果只设置在某一个Activity下,那么只要确保当前Activity不是继承Activity而不是继承AppCompatActivity即可,其他Activity随意;

原文地址:https://www.cnblogs.com/shen-hua/p/6082957.html