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) java

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

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

设置没有标题 ui

requestWindowFeature(Window.FEATURE_NO_TITLE);

设置全屏 spa

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


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

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

<!--设置-全屏--> <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 get


<item name="android:windowNoTitle">true</item> <item name="windowActionBar">false</item>
相关文章
相关标签/搜索