前言
1Activity+多Fragment的模式。相信大多数Android app开发人员都不会感到陌生。很常见的界面,比如一些平板的设置界面。就是左边一排按钮,右边区域专门用来放左边按钮点击之后需要展示的界面。
项目背景
项目中,在做横竖屏切换的时候,出现了两个问题:
1.当我切换的时候,右边的显示界面会直接显示第一个碎片的内容。但是我可能之前是在看第三个碎片内容的时候进行的横竖屏切换的;
2.当我切换的时候,数据会重新加载,导致切换的时候,又出现了等待数据加载的状况。
解决办法
- 在Activity的onConfigurationChanged(Configuration newConfig)的方法里面做一些操作。已改变这样的状况。如果出现,这个方法,在做横竖屏切换的时候,并不会被调用。不要着急,请看:
只有在Activity配置文件配置过android:configChanges="orientation"才会在,横竖屏切换的时候,走onConfigurationChanged(Configuration newConfig)这个方法。 - 在onSaveInstanceState(Bundle outState)和onRestoreInstanceState(Bundle savedInstanceState)这两个方法倒是会在切换横竖屏的时候被调用。于是我打算在这两个方法里面做点什么,以解决数据的重复加载,已经碎片的轻易销毁的问题。
- 在准备这么做的时候,想试试,通过在配置文件里面设置Activity的配置能不能达到我要的效果。于是,把之前的项目里面的一个配置android:configChanges="orientation|keyboardHidden|keyboard|screenSize"放进我当前的,包含多个Fragment的Activity的配置当中。一运行,很给力
网友评论