从子活动支持时,不保留父级活动的状态

时间:2017-07-18 15:29:18

标签: android-activity navigation

在AndroidManifext.xml中,我有:

        <activity
            android:name=".mypackage.ChildActivity"
            android:label="Child"
            android:parentActivityName=".mypackage.ParentActivity"
            android:screenOrientation="portrait"
            android:windowSoftInputMode="stateHidden|adjustResize">
            <meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value=".view.activities.ParentActivity" />
        </activity>

在ParentActivity中,我有一些片段,A,B,C。在片段C,我点击按钮时启动ChildActivity。当支持ParentActivity时,我没有登陆Fragment C,而是片段A.看来ParentActivity再次重新启动或初始化。

在ChildActivity中,我有:

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }

作为比较,我还尝试用片段D替换ChildActivity,并且从片段D开始正确地放在片段C上。

我在哪里错过了ChildActivity实施?

编辑: 刚注意到点击&#34;返回&#34;设备上的按钮,它正确地返回到ParentActivity的片段C,但是如果按下&#34;&lt;&#34; “儿童活动”左上角的按钮,即出现问题的地方。

提前致谢!

肖恩

1 个答案:

答案 0 :(得分:0)

从childActivity中删除提及的父级。如下。因为android已经维护了导航堆栈

<activity
            android:name=".mypackage.ChildActivity"
            android:label="Child"
            android:parentActivityName=".mypackage.ParentActivity"
            android:screenOrientation="portrait"
            android:windowSoftInputMode="stateHidden|adjustResize">
</activity>
相关问题