android - 在 fragment 期间处理后退按钮键

标签 android android-fragments android-activity

实际上问题是我只是从抽屉导航加载一个 fragment (让调用 fragment -A)现在 fragment -A 调用一个虚拟 Activity ,虚拟 Activity 加载一个 Fragment-B 比 fragment-B 调用 Fragment C 而 fragment-C 调用 Fragment-D..

整体上图:

Fragment-A(call)-->Dummy Activity(load)-->fragment-B(call)-->fragment-C(call)-->fragment-D(call)

现在我有一些关于这个的问题:

  • 实际上 Fragment D 中有一个按钮,当按钮被调用时我必须返回到 Fragment-A
  • 现在在 fragment (B、C&D)加载期间,我必须处理 On Back Pressed.. 意味着如果用户在 fragment D 中而不是按后退键,则 Fragment-C 被加载,反之亦然,但是当用户在 Fragemnt-B 上时调用 On-back 键而不是 Fragment A 被加载<

注意:

  • 我必须同时处理 Above Back 键或 System Back 键

  • 我知道我必须维护 Fragment Stack 但我怎样才能通过案例一

    enter image description here

enter image description here

编辑:

  • 实际上Fragment-A是Activity-(a)的一部分,剩下的Fragmnets(B,C&D)是Activity-(X)的一部分

代码:

repo 链接:Code link

最佳答案

上面的场景可以通过下面的方式解决..

 @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        if (item.getItemId() == android.R.id.home) {
            onBackPressed();
        }
        return super.onOptionsItemSelected(item);
    }


 @Override
    public void onBackPressed() {
        finish();
    }

如果 fragment D中的按钮被调用,请调用该函数 getActivity().onBackPresses(); 它将完成当前的 Activity..

关于android - 在 fragment 期间处理后退按钮键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42985915/

相关文章:

java - 如何将数据从 Activity 传递到抽屉导航 Android 内的 fragment

android - 在主线程中调用 Activity/fragment 的生命周期方法?

android - 选择器 Intent - 从图库或相机中选择

android - 检索 Sku 详​​细信息时出错

再次在 onCreateView 中创建的 android fragment 重用布局

java - Activity崩溃生命周期方法——android

Android:如何使用单个实例从非 Activity 类启动 Activity

android - Lateinit 属性未在 Fragment 上初始化

android - Gradle错误无法解析com.github.Binary-Finery:Bungee:master-SNAPSHOT

java - ViewHolder 字段在 Fragment 中初始化为 null