我有Parent片段,其中包含2个制表符片段。
ParentFragmet
TabFragment1
TabFragment2
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中选择的数据。
答案 0 :(得分:0)
supportFragmentManager
.beginTransaction()
.replace(R.id.content_frame, foFragment).addToBackStack(null)
.commit()
替换为
supportFragmentManager
.beginTransaction()
.add(R.id.content_frame, foFragment).addToBackStack(null)
.commit()