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

当通过调用popbackbackimmediate返回到tablayout中被替换的片段时,调用哪个方法

江德海
2023-03-14

我有一个TabLayout里面的FragmentA,我打电话给:

//inside FragmentA
@Override
public void onClickView() {
    activity.replaceFragment(FragmentB.newInstance(), true);
}

在replaceFragment中,传递的片段被添加到事务中的backbackback中,然后替换片段

public void replaceFragment(Fragment fragment, boolean doAddToBackStack) {
    FragmentManager fm = getSupportFragmentManager();
    FragmentTransaction ft = fm.beginTransaction();

    if (doAddToBackStack) {
        String tag = fragment.getClass().toString();
        ft.addToBackStack(tag);
    }

    ft.replace(R.id.mainFragment, fragment);
    ft.commit();
}

在那之后,FragmentB打开,我做我的事情,并通过PopBackbackImmediate()返回FragmentA:

//inside FragmentB
@Override
public void onClickBack() {
    activity.getSupportFragmentManager().popBackStackImmediate();
}

当我回去时,我需要更新FragmentA中的一些内容。

根据平台上的另一篇文章,当返回到片段时,应该调用onCreateView(),但这对我来说不起作用。根据片段生命周期文档,onCreateView()只在第一次绘制UI时被调用,这可以解释我的问题。

我现在的问题是,当从backback返回到片段时,我可以使用什么生命周期方法,或者应该采取什么其他方法来执行代码

共有1个答案

劳华灿
2023-03-14

根据下面的答案,您可以添加一个侦听器来检查它何时被调用https://stackoverflow.com/a/52646588/6468214

getSupportFragmentManager().addOnBackStackChangedListener(
            new FragmentManager.OnBackStackChangedListener() {
                public void onBackStackChanged() {

                       // Your Code Here

                }
            });
 类似资料:
  • 我正在使用开发一个应用程序。 这是我的活动: 我使用的FragmentStatePagerAdapter如下所示: }

  • 在我的应用程序中,当点击导航抽屉上的不同项目时,我需要在片段之间切换。我为它创建了一个新方法DisplayFragment。代码如下: 它显示了错误的"片段元素在上面的行如下"错误的第二个参数类型找到android.support.v4.app.片段;需要android.app.片段;" 我试着改变从android的导入。支持v4.app。碎片到android。应用程序。碎片但它随后显示了Frag

  • 我在使用FragmentPagerAdapter时遇到问题。我想从视图寻呼机中的片段中检索数据。当我调用getItem()方法时,它返回一个片段,但不创建片段。所有片段变量均为null。我需要做什么来实例化片段?这是我的适配器。 这是viewpager中的片段。 我不太了解ViewPager是如何工作的,但据我所知,片段在没有设置任何变量的情况下返回的原因是因为ViewPager没有附加片段。如何

  • 正如您在onCreate方法中看到的,我在“片段”列表的第0个片段上调用了getView。它返回null。我试着在代码中加入一个计时器,让它每秒运行一次,并检查视图是否为空。在计时器的第二个滴答声中,视图不为空。大体上 主要活动。JAVA 空白碎片。JAVA

  • 问题是: 我有一个带有2个片段的活动:片段1和片段2。 点击一个项目后,从我的回收站视图我调用Fragment2与以下行: 当用户关闭Fragment2(BackButton或关闭按钮)时,Fragment1再次出现在屏幕上。 我需要的是: 当Fragment1实例再次出现在屏幕中时,调用的事件是哪个? 在修改了片段的以下生命周期之后,我认为可能是onCreateView()或onResume()

  • 问题内容: 我有一个简单的节点模块,该模块连接到数据库,并且具有几个用于接收数据的功能,例如,以下功能: dbConnection.js: 该模块将从另一个节点模块中以这种方式调用: app.js: 我想使用promise而不是回调以返回数据。到目前为止,我已经在以下线程中阅读了有关嵌套的Promise的内容:使用嵌套的Promises编写干净的代码,但是我找不到适合该用例的任何简单解决方案。用承