Android开发小技巧之--------继承AppCompatActivity后设置全屏的问题

Caused by: android.util.AndroidRuntimeException: requestFeature() must be called before adding content  at com.android.internal.policy.impl.PhoneWindow.requestFeature(PhoneWindow.java:229)at android.app.Activity.requestWindowFeature(Activity.java:3244)

遇到过这个错误的童鞋都知道是因为在设置全屏的时候,代码写在了setContentView(R.layout.main)后面,如果写在前面就不会有问题了,但是当你继承的不是Activity而是AppCompatActivity的时候,问题还是来了....

大家都知道设置全屏有两种方式 ,一种是manifest.xml里面设置notitle的主题,一种是在代码里面设置

设置没有标题

requestWindowFeature(Window.FEATURE_NO_TITLE);

设置全屏

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
然后这两行代码还必须写在setContentView()前面


是的,如果你的activity继承的是Activity这样是没有问题,但是如果你的activity继承了v7的AppCompatActivity的时候,你会发现还是会报上面的错误。我来提供一个解决方法,还是用设置主题的形式

给你要全屏的activity设置一个theme,

<!--设置-全屏-->
    <style name="NoTitleFullscreen" parent="BaseAppTheme">
        <item name="android:windowNoTitle">true</item>
        <item name="windowActionBar">false</item>
        <item name="android:windowFullscreen">true</item>
        <item name="android:windowContentOverlay">@null</item>
    </style>



<activity  android:name=".ui.LogoActivity"  android:theme="@style/NoTitleFullscreen">


完美。不管你的系统是哪一个版本都没有问题

设置无标题,一定要设置这两个,windowActionBar也需要设置,不然会在低版本上还是有title


<item name="android:windowNoTitle">true</item> <item name="windowActionBar">false</item>


转载于:https://my.oschina.net/aibenben/blog/528078

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值