带有选项卡片段的片段堆栈

Fragment backstack with tab fragment

我有包含 2 个选项卡片段的父片段。

  1. ParentFragmet

  2. TabFragment1

  3. TabFragment2

  4. 新片段

现在从按钮上的 TabFragment1 单击打开新片段。 来自 newFragment i select 的值并单击调用 a

的按钮
(activity as MainActivity).supportFragmentManager.popBackStack()

以及一种刷新视图的接口方法

 tabFrag1InterFace?.onRefresh(MyValue)

现在在 TabFragment1 上 Ovverride OnRefresh 方法及其正确调用。

TabFragment1

override fun onRefresh(myValue) {
    Log.i(TAG,"TabFragment1 onRefresh Before postDelay")
    Handler().postDelayed({
        Log.i(TAG,"TabFragment1 onRefresh after postDelay")
    }, 3000)
}

但是当我使用 newFragment 值并在文本视图中设置时,值没有更新。

我在普通片段中遇到了同样的问题,但是当我在普通片段中添加 postDelay 时,它就像魅力一样工作,但同样不会在 Tab 片段中工作。

当我调试整个过程 我弹回电话 ParentFragment onResume 调用并重定向到默认的 TabFragment1 及其调用接口 OnRefresh() 方法。

我得到的日志如下。

10-11 15:35:16.710 10208-10208/com.app I/TabFragment1: TabFragment1 clicked for NewFragment
10-11 15:35:16.783 10208-10208/com.app I/NewFragment: NewFragment onCreateView
10-11 15:35:48.440 10208-10208/com.app I/NewFragment: NewFragment popBackStack(Clicked submit)
10-11 15:35:48.453 10208-10208/com.app I/TabFragment1: TabFragment1 onRefresh Before postDelay
10-11 15:35:48.488 10208-10208/com.app I/ParentFragent: Called Parent Frag onCreateView
10-11 15:35:48.538 10208-10208/com.app I/ParentFragent: Navigate to TabFragment1 from Parent Frag
10-11 15:35:48.760 10208-10208/com.app I/ParentFragent: Called Parent Frag OnResume
10-11 15:35:51.467 10208-10208/com.app I/TabFragment1: TabFragment1 onRefresh after postDelay

请以任何方式刷新视图,因为我必须显示从 NewFragment select编辑的数据。

supportFragmentManager
    .beginTransaction()
    .replace(R.id.content_frame, foFragment).addToBackStack(null)
    .commit()

替换为

supportFragmentManager
    .beginTransaction()
    .add(R.id.content_frame, foFragment).addToBackStack(null)
    .commit()