1Activity+多个Fragment模式下进行横竖屏切换的问题及解决方式

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