当屏幕转动切换的时候 Android 机制是:
销毁当前屏幕的 Activity ,然后重新开启一个新的适应屏幕改变的 Activity 。
那么,我们该如何在屏幕切换的时候页面信息不被重置呢?
表示在改变屏幕方向、弹出软件盘和隐藏软键盘时,不再去执行 onCreate() 方法,
如果不申明此段代码,按照Activity的生命周期,都会去执行一次 onCreate() 方法,
而 onCreate() 方法通常会在显示之前做一些初始化工作。
所以如果改变屏幕方向这样的操作都去执行 onCreate() 方法,就有可能造成重复的初始化,
降低程序效率是必然的了,而且更有可能因为重复的初始化而导致数据的丢失。
API 中说该权限允许我们改变配置信息,但是我们在改变屏幕方向的程序中却并没有用到该权限,是不是相互冲突了呢?
这里我们可以这样认为,当我们声明该权限的的时候,
一、新建一个 Activity ,并把各个生命周期打印出来:
再按 crtl + f12 切换成竖屏时,发现打印了两次相同的信息:
发现不会再打印相同信息,
3.Activity 未被完全覆盖只是失去焦点:
基于.NET分层体系结构的网站应用系统,系统的体系结构,软件系统体系结构,系统体系结构图,信息系统体系结构,文件系统通用分层,系统分层,软件系统分层,体系和系统的区别,体系 系统
如今大部分的APP都都大体分为好几个模块,这就用到了viewpager+fragment来实现这样的效果,下面我们就一块儿来实现一下这样的效果;java
二、而后新建三个fragment用来以后的切换
四、完成以后进行第四步,编写MainActivity里面的代码app
完成,这样就能够实现咱们想要的效果了ide
有的APP是不让fragment滑动的(Android版的微信能够滑动),下面就来操做一下如何让fragment禁止滑动
一、在项目里面添加工具类:svg
二、在布局里面将viewpager控件替换成工具类的类路径名
有的哥们不会拿类的类名,其实想拿类路径名也简单,右键想要拿类路径名的类
就是这个,点击以后就已经复制了类路径名工具
三、最后一步就是在用到的类里面添加一行代码实现fragment的滑动禁止
禁止滑动就这么简单,添加一个工具类加一行代码完成
这个实现以后会发现确实不能滑动了,可是当点击按钮切换页面的时候仍是会有滑动的效果,如何去掉这种滑动的效果呢?换另一个工具类字体
怎么调用工具类在上面也说过了,调用这个工具类以后不只页面不能滑动,并且当点击按钮切换页面的时候也没有滑动的效果,按需求选择到底使用哪一个工具类就好了