星空网 > 软件开发 > 操作系统

Android横屏下Fragment界面重叠问题

前言:

项目是基于平板开发的,设计的界面是要求横屏展示界面。所以我将所有的Activity都强制设置为横屏

android:screenOrientation="landscape"

 

-----------------------------------------------------------------------------------------------------

问题:

主界面,最常见的Activity+n个Fragment 

我这里使用的hide、show Fragment的方式来切换Fragment,当关闭手机、平板屏幕再打开,会发现Fragment界面重叠

安卓开发_慕课网_Fragment实现Tab(App主界面)

 

-----------------------------------------------------------------------------------------------------

1、先通过界面来了解具体情况

界面左侧是4个Tab按钮,对应四个Fragment界面,如下面两个图 ,是正常的界面显示效果,这里我已经将这个Activity强制为横屏显示

Android横屏下Fragment界面重叠问题images/loading.gif' data-original="http://images2015.cnblogs.com/blog/493196/201609/493196-20160912152232930-1175415943.png" width="370" height="208" />   Android横屏下Fragment界面重叠问题

 

2、正常情况下,我这个时候关闭了屏幕,然后在打开屏幕,可以看到 这个时候会显示 之前打开过的Fragment界面,导致界面重叠

Android横屏下Fragment界面重叠问题

 

此时,我们测试将activity横屏显示去掉,让他竖屏显示,然后在进行关屏幕,打开屏幕操作,会发现 在竖屏的情况下,并没有发生界面重叠的问题。

 

那么我们就可以猜出问题所在了:生命周期

3、接着我们给Activity的onCreate() onResume()方法 Fragment的onCreateView() onResume()方法打印Log

  (1)看我们关闭屏幕的时候执行的生命方法

      Android横屏下Fragment界面重叠问题

  这里我们可以看到,当我们关闭屏幕的时候,很显然Activity又执行了一遍生命周期

 

  (2)在看我们打开屏幕的时候执行的生命方法

  Android横屏下Fragment界面重叠问题

  可以看到,Activity又执行了一次onCreate()方法,而Fragment执行了多次onCreateView()

 

  总结一下:锁屏关闭屏幕后,Activity会由横屏切换为竖屏,这个时候执行了onCreate()方法,但是Activity原来对应的Fragment并没有被销毁,(导致第一张生命周期图中 今日任务Fragment执行了两次onresume,因为新建了一个和原来未被销毁的一个,此时存在两个今日任务Fragment), 解屏打开屏幕后,Activity又有竖屏切换为横屏(我们强制设置的横屏显示),又执行了onCreate()方法,导致又创建了一次Fragment,但是原来的Fragment还是没有被销毁(所以第二章生命周期图中,我们可以看到此时存在了3个今日任务Fragement的onResume()方法)。那么最终就会导致打开屏幕后 之前所有未被销毁的Fragment都显示出来。

 

  解决方法:

  我们不让开关屏幕的时候Activity走生命周期,那么在清单文件中给Activity设置下面这两个属性即可

 android:screenOrientation="landscape" android:configChanges="orientation|keyboardHidden|screenSize"

  注意:4.0以上的configChanges需要添加screenSize属性,否则切换横竖屏仍会执行生命周期




原标题:Android横屏下Fragment界面重叠问题

关键词:Android

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

跨境市场,怎么同一电脑登录多账号的防关联措施!:https://www.ikjzd.com/articles/129040
亚马逊解除FBA发货限制?真相来了:https://www.ikjzd.com/articles/129041
Moss:我是如何备战今年Prime Day的?:https://www.ikjzd.com/articles/129070
因为敏感词被亚马逊下架怎么办!跨境叔告诉你:https://www.ikjzd.com/articles/129071
亚马逊再曝丑闻,一手好牌打得稀烂?:https://www.ikjzd.com/articles/129072
跨境电商竞品分析怎么做?手把手教你找到突破口:https://www.ikjzd.com/articles/129073
大件卖家看这里!直达货源,选品快捷,独家干货限时分享:https://www.kjdsnews.com/a/1842243.html
德国消费者购物习惯研究:网购退货率达11%:https://www.kjdsnews.com/a/1842244.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流