360SDN.COM

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

来源:  2017-07-01 08:54:44    评论:0点击:

来源:https://my.oschina.net/aibenben/blog/528078
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="Theme.AppCompat.Light.NoActionBar"> 
<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

或者:

解决方法:

在AndroidManifest.xml中将主题更改为Theme.AppCompat.Light.NoActionBar搜索、Theme.AppCompat.NoActionBar或Theme.AppCompat.DayNight.NoActionBar中的一个,即可隐藏标题栏

 

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




  • AndroidStudio的普及已经是大势所趋了,尤其是2.0的推出后,性能的提升以及官方的支持,让越来越多的人选择了studio。
  • 使用AndroidStudio创建Activity的时候,系统默认继承的是AppCompatActivity。这个类是来自v7包,是一种可以向下兼容的Activity。
    但是问题也随即来了,因为很多同学会发现,之前继承Activity的时候,使用的无标题方法也随机不能用了。

    • requestWindowFeature(Window.FEATURE_NO_TITLE);
      在AppCompatActivity的情况下使用程序会崩溃掉。
    • 在Manifest配置文件设置Activity的theme主题
      android:theme=”@android:style/Theme.NoTitleBar”也是不行,程序崩溃
  • 当时我为了这个问题可是搜了很多资料,相信很多初学者也为此头疼。那么今天分享一种简单的方法,来实现AppCompatActivity下的无标题。

    • 首先我们再values文件夹styles文件里写一个新的style

 
	  	
为您推荐

友情链接 |九搜汽车网 |手机ok生活信息网|ok生活信息网|ok微生活
 Powered by www.360SDN.COM   京ICP备11022651号-4 © 2012-2016 版权