当前位置: 首页 > news >正文

加强局网站建设廊坊seo建站

加强局网站建设,廊坊seo建站,ppt下载网站哪个好,网站开发设计运维出现Only fullscreen opaque activities can request orientation是谷歌爸爸在安卓8.0版本时为了支持全面屏,增加了一个限制:如果是透明的Activity,则不能固定它的方向,因为它的方向其实是依赖其父Activity的(因为透明…

出现Only fullscreen opaque activities can request orientation是谷歌爸爸在安卓8.0版本时为了支持全面屏,增加了一个限制:如果是透明的Activity,则不能固定它的方向,因为它的方向其实是依赖其父Activity的(因为透明)。然而这个bug只有在8.0中有,8.1中已经修复。还有种原因是代码中手动取消App启动白屏或者黑屏的时候,将Splash界面设为了透明,然后这个时候又设置了方向为垂直,从而导致了这个问题。总结具体原因有两种:

1.Activity的风格为透明,在manifest文件中指定了一个方向,则在onCreate中崩溃

2.Activity的风格为透明,如果调用setRequestedOrientation方法固定方向,就会崩溃

解决方法

方法一:

1.找到你设置透明的Activity,然后在他的theme中将android:windowIsTranslucent改为false

即:<item name="android:windowIsTranslucent">false</item>

2.再加入<item name="android:windowDisablePreview">true</item>就搞定了。

方法二:

        如果项目结构复杂,并不适合去修改配置文件,则通过下面这段代码,写是BaseActivity的成员方法,其中稍难的就是如何获取com.android.internal.R$styleable.Window这个stylable,记住$这个符号是等于代码中的“.”反射是需要写成$,stylable其实是R的内部类,获取到这个数组,就可以用反射调用ActivityInfo#isTranslucentOrFloating()这个方法了。

private boolean isTranslucentOrFloating(){boolean isTranslucentOrFloating = false;try {int [] styleableRes = (int[]) Class.forName("com.android.internal.R$styleable").getField("Window").get(null);final TypedArray ta = obtainStyledAttributes(styleableRes);Method m = ActivityInfo.class.getMethod("isTranslucentOrFloating", TypedArray.class);m.setAccessible(true);isTranslucentOrFloating = (boolean)m.invoke(null, ta);m.setAccessible(false);} catch (Exception e) {e.printStackTrace();}return isTranslucentOrFloating;}

在onCreate的时候,先判断,如果透明,直接把方向改为SCREEN_ORIENTATION_UNSPECIFIED:

@Overrideprotected void onCreate(Bundle savedInstanceState) {if (Build.VERSION.SDK_INT == Build.VERSION_CODES.O && isTranslucentOrFloating()) {boolean result = fixOrientation();}super.onCreate(savedInstanceState);}private boolean fixOrientation(){try {Field field = Activity.class.getDeclaredField("mActivityInfo");field.setAccessible(true);ActivityInfo o = (ActivityInfo)field.get(this);o.screenOrientation = -1;field.setAccessible(false);return true;} catch (Exception e) {e.printStackTrace();}return false;}

然后在重写setRequestedOrientation设置方向的时候如果透明,直接不执行:

@Overridepublic void setRequestedOrientation(int requestedOrientation) {if (Build.VERSION.SDK_INT == Build.VERSION_CODES.O && isTranslucentOrFloating()) {return;}super.setRequestedOrientation(requestedOrientation);}

链接:https://www.jianshu.com/p/f26774dc0f2e
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

http://www.dt0577.cn/news/51176.html

相关文章:

  • 网站正能量破解版下载大全安装各大网站收录查询
  • 视频聊天网站怎么建设嘉兴seo网络推广
  • 网站建设一般人能操作吗外链网
  • 西平网站建设培训班有哪些课程
  • 制作做网站的基本流程三叶草gw9356
  • 免费微网站企业seo网站推广
  • 天津特定网站建设推广手机如何建网站
  • 做代理的网站网络营销的产品策略
  • wordpress刷新seo排名优化推广教程
  • 刚做网站和搜出来的不一样seo是什么意思 职业
  • wordpress 启用多站点农产品营销策划方案
  • 网站建设微信运营公司免费b站推广网址有哪些
  • 优秀高端网站建设公司网络上如何推广网站
  • 景德镇做网站推广方案格式模板范文
  • 寄生虫网站代做企业网址搭建
  • 什么软件可以建网站如何让百度收录自己的网站信息
  • 做图片的网站有哪些品牌推广软文案例
  • 做网站找客户网站运营及推广方案
  • 用来查数据的网站怎么建设河南seo优化
  • 电子商务网站流程图网站排名优化查询
  • wamp跟wordpress常德网站优化公司
  • 小程序要先做网站什么是网络营销推广
  • 腾讯云低代码开发平台仁茂网络seo
  • 如何将自己做的网站挂到服务器上网站页面怎么优化
  • 管理咨询公司口号seo推广哪家服务好
  • 商丘市做网站的公司怎么给公司做网站推广
  • 网站建设找盖亚科技靠谱seo外包定制
  • 合肥网站设计培训谷歌aso优化
  • 黑龙江网站建设微信朋友圈的广告怎么投放
  • 做微商如何网站推广营销策划方案包括哪些内容