当前位置: 首页 > 知识库问答 >
问题:

Android-onBackPressed with Fragments和FragmentActivity问题

西门磊
2023-03-14

我对Android上的物理后退按钮有一个问题。我想允许使用“后退”按钮,但只能从活动#2中使用,这是一个片段,从那里开始,我只想允许“后退”按钮返回到上一个片段。

这是我的布局/工作流程:

(#1)活动-

  1. 活动(从Intent x打开下一个活动=新Intent(params);)-

当FragmentActivity(#2)未禁用onBackPressed方法时,在FragmentActivity之后的任何位置按下后退按钮,只会将应用程序返回到活动(#1),而不是上一个片段。

所以问题是,如何启用onBackPressed only from FragmentActivity(#2)并只返回到同一选项卡中的前一个片段?

非常感谢。

共有1个答案

酆阳煦
2023-03-14

不确定这是否可行,但请尝试以下操作:

@Override
public void onBackPressed() {
    FragmentManager fm = getSupportFragmentManager();
    Log.d("length out", "" + fm.getBackStackEntryCount());
    if (fm.getBackStackEntryCount() > 2) {
        //do nothing you are on other fragments according to your work flow
    } else {
        // you are in your activity two or one so pop the fragment
        fm.popBackStack();
    }

}
 类似资料:
  • 我正在开发一个androidapp.My类扩展Fragmentactive,我在我的类中使用了一个viewpager,它有一个setonpage echAngelistner来检测从一个屏幕到另一个屏幕的滑动。 问题是,我无法检测到向左滑动和向右滑动手势。有没有办法检测到它?我正在尝试在向右滑动时触发动画(即从第0页到第1页)。 我一直在努力,因为两个days.please帮助。 谢谢

  • 任何人都有,当在自身上调用时,它只调用,而不调用和。但这种活动在设备上是看不见的吗? 我没有看到任何其他错误日志。 根据android活动生命周期,如果活动是不可见的,那么它应该调用。但事实并非如此。它发生在Android 5.0上。 我找到了原因,但我不明白为什么会发生。 扩展碎片活动,定义为启动模式:singleTask。 B扩展了Activity,它在Manifest中定义了android:

  • 我来自iOS,它很简单,您只需使用一个UIViewController。然而,在Android中,事情似乎要复杂得多,有特定API级别的特定UIComponent。我正在读BigNerdRanch for Android(这本书大约有2年的历史),他们建议我使用来托管我的。但是,我认为是不推荐使用的。 那么对于API级别22(最低限度支持API级别15或16),我应该使用什么来承载组件,以及组件本

  • 这是我的类文件,它扩展了FragmentActivity。我不太确定我做得对不对。我想有一个选项卡式布局在这个活动,但应用程序不断崩溃。 ```

  • 我有一个问题,我不能解决我的应用程序的导航抽屉。导航抽屉中的一个链接是打开一个FragmentActivity(其中包含一个ViewPager)。其他链接是片段。现在,我已经将它设置为启动该活动的意图,但我的一个片段Mapspage出现了错误。和嵌套碎片有关。我会把logcat贴在下面。现在我的NavigationDrawer onClick已经设置好: 我的问题是“案例3:”。MapsPage是

  • 我正在尝试创建一个自定义ListView。当我测试我的代码时,我收到以下错误 在发布此问题之前,除了阅读有关 Fragments,ListFragments和ListViews的Android文档外,我还参考了以下链接。 链接1:fragmentation activity onCreateView < br >链接2:在Android上使用ListFragment的问题< br >链接3: An