带有标签片段的片段后退堆栈

时间:2018-10-11 10:14:59

标签: android android-fragments android-tablayout

我有Parent片段,其中包含2个制表符片段。

  1. ParentFragmet

  2. TabFragment1

  3. TabFragment2

  4. NewFragment

现在从TabFragment1 on按钮上单击以打开新片段。 我从newFragment中选择值,然后单击调用a

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

和一种刷新视图的Interface方法

 tabFrag1InterFace?.onRefresh(MyValue)

现在在TabFragment1上,可以重写OnRefresh方法及其正确的调用方法。

TabFragment1

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

但是当我使用newFragment值并在textview中设置时,值不会更新。

我在普通片段中也遇到了同样的问题,但是当我在普通片段中添加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中选择的数据。

1 个答案:

答案 0 :(得分:0)

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

替换为

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