- 1Activity+多Fragment的模式。相信大多数Android app开发人员都不会感到陌生。很常见的界面,比如一些平板的设置界面。就是左边一排按钮,右边区域专门用来放左边按钮点击之后需要展示的界面。
- 我的项目中,正好就是使用了这个模式。在做横竖屏切换的时候,我发现了两个问题:
- 1.当我切换的时候,右边的显示界面会直接显示第一个碎片的内容。但是我可能之前是在看第三个碎片内容的时候进行的横竖屏切换的;
- 2.当我切换的时候,数据会重新加载,导致切换的时候,又出现了等待数据加载的状况。
- 我最初的想法是,在
Activity
的onConfigurationChanged(Configuration newConfig)
的方法里面做一些操作。已改变这样的状况。但是不幸的是,我不知道为什么,这个方法,在我做横竖屏切换的时候,并不会被调用。(希望知道的朋友,在评论或者其他地方告诉我一声,3Q) - 不过
onSaveInstanceState(Bundle outState)
和onRestoreInstanceState(Bundle savedInstanceState)
这两个方法倒是会在切换横竖屏的时候被调用。于是我打算在这两个方法里面做点什么,以解决数据的重复加载,已经碎片的轻易销毁的问题。 - 但是,最后我没有这么做。我在准备这么做的时候,想试试,通过在配置文件里面设置
Activity
的配置能不能达到我要的效果。于是,我把之前的项目里面的一个配置android:configChanges="orientation|keyboardHidden|keyboard|screenSize"
放进我当前的,包含多个Fragment
的Activity
的配置当中。一运行,果然,很给力。 - 目前,就是使用上述配置来解决这个问题的,后续出现什么问题,再继续更新
- —
- 刚刚无意发现:只有在
Activity
配置文件配置过android:configChanges="orientation"
才会在,横竖屏切换的时候,走onConfigurationChanged(Configuration newConfig)
这个方法。
1Activity+多个Fragment模式下进行横竖屏切换的问题及解决方式
最新推荐文章于 2024-07-15 11:06:43 发布