片段布局方向管理

时间:2016-05-16 05:39:21

标签: android android-fragments fragment

我有片段方向更改的小问题,我有一个DrawerActivity开始加载ProfileFragment里面,在左侧导航栏中点击按钮如果点击按钮在同一个容器中加载ReviewFrament。现在在ReviewFragement中,如果更改方向显示ProfileFrament(返回页面),则刷新总页面。

如何避免app的不当行为?

3 个答案:

答案 0 :(得分:1)

最后使用放置标志来检查基于该加载视图的片段状态。

尝试使用清单中的配置更改但不更改布局视图(如果我们想根据方向更改设计)。

答案 1 :(得分:0)

只需将此行添加到DrawerActivity文件

中的manifest即可
android:configChanges="orientation|screenSize"

因此,您的活动代码将如下所示。

<activity
    android:name="packagename.DrawerActivity"
    android:configChanges="orientation|screenSize"
    android:label="@string/app_name" >
</activity>

快乐编码。

答案 2 :(得分:0)

它的发生是因为你的活动在轮换后重新创建,所以片段被破坏了。

我建议最好处理这种情况是将活动用作片段的父级,就像容器一样,在活动中放置任何布局并使用片段执行所有其他操作。

例如在您的情况下,主要活动应该只包含像这样的容器

<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

然后使用您的活动的onCreate启动的个人资料ProfileFragment

// this will prevent the fragments from recreating on rotate
if (savedInstanceState == null){
        setSplashFragment();
        } else {
            //Do Nothing
        }

并在你的清单中

<activity
    android:name=".ParentActivity"
    android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>

并使用界面告诉活动按钮点击等启动ReviewFragement

这一切可能听起来很复杂,您可能正在寻找快速解决方案,但这是您可以用来避免未来冲突的最佳方法。