微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

android – 如何在方向更改后将片段重新加载到backstack中

我的 Android应用程序具有一个Activity的注册流设置,我将这些步骤作为片段加载到活动布局中.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal"
    tools:context="com.example.android.ui.Registeractivity">

    <LinearLayout
        android:id="@+id/register_container"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"></LinearLayout>

</RelativeLayout>

现在每个片段类实现在Registeractivity中实现的公共接口,以便我知道加载下一步片段并将新片段添加到backstack

mFragmentTransaction.addToBackStack(mStepOne.TAG);

现在一切正常,通过4个步骤,我可以导航回步骤,同时保留每个片段中的输入数据,如果它保持在相同的方向(portait)

但是一旦我改变方向,片段视图就会消失

如果我达到第3步,我仍然可以点击后退按钮,它将返回显示通过查看后端改变监听器而在那里的片段

mFragmentManager.addOnBackStackChangedListener(new FragmentManager.OnBackStackChangedListener() {
        @Override
        public void onBackStackChanged() {
            if(mFragmentManager.getBackStackEntryCount() > 0) {
                Log.d("BACK STACK","TAG (name): " + mFragmentManager.getBackStackEntryAt( (mFragmentManager.getBackStackEntryCount() - 1)).getName());
            }
        }
    });

保留片段的计数和标签,但不保留视图. Registeractivity onCreateView将术语片段加载到视图中,当浏览步骤时,它仍然在视图中.

mFragmentManager = getSupportFragmentManager();
mFragmentTransaction = mFragmentManager.beginTransaction();
mTerms = new RegisterFragmentTerms();
mFragmentTransaction.add(R.id.register_container,mTerms);
mFragmentTransaction.commit();

在我看来,视图被加载到Registeractivity之上,并在方向更改时被清除.有可能解决我正在尝试做的事情吗?或者我实施错了吗?这是我的第一个Android应用程序:)

干杯

解决方法

这似乎是由Activity娱乐引起的.您是否曾在AndroidManifest.xml中将android:configChanges =“orientation | keyboardHidden | screenSize”添加到您的Activity中?,如果您将该标志添加到您的活动中,当方向更改并且片段堆栈不会消失时,它将不会被销毁.

原文地址:https://www.jb51.cc/android/309715.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐