【问题标题】:Android Navigate back inside Activity's fragmentAndroid 导航回 Activity 的片段
【发布时间】:2014-12-12 10:24:35
【问题描述】:

Android 使用返回图标或 ActionBar 上的图标提供用户导航

getActionBar().setDisplayHomeAsUpEnabled(true);

AndroidManifest.xml 有

        <!--
        since 4.0 
        android:parentActivityName=".MainActivity" >
        --> 
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value=".activity.MainActivity" />

现在如果我的 Activity 有 3 个片段 1-2-3, 如何启用返回导航返回 3->2->1 ?

当用户按下返回时,如何转到上一个片段,而不是活动?

【问题讨论】:

    标签: android android-fragments navigation back


    【解决方案1】:

    您可以按名称弹出片段。在将片段添加到后台堆栈时,只需给它们命名即可。

    fragmentTransaction.addToBackStack("fragB");
    fragmentTransaction.addToBackStack("fragC");
    

    然后在 Fragment_C 中,使用名称 ie..fragB 弹出回栈并包含 POP_BACK_STACK_INCLUSIVE

    someButtonInC.setOnClickListener(new View.OnClickListener() {
    
        @Override
        public void onClick(View v) {
    
            FragmentManager fm = getActivity()
                    .getSupportFragmentManager();
            fm.popBackStack ("fragB", FragmentManager.POP_BACK_STACK_INCLUSIVE);
        }
    });
    

    【讨论】:

      【解决方案2】:

      请注意,您可能在一个应用程序中有几个可访问的片段。因此,您需要一个稳健可靠的解决方案。我在Managing the Fragment Back Stack 页面找到了一个完整且解释清楚的解决方案,相关代码在GitHub 中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-22
        相关资源
        最近更新 更多