我正在使用数组来保存对我添加到片段管理器的片段的引用。 在某些时候我想清除后面的堆栈,所以我调用fragmentmanager。 PopBackStackImmediate。
问题是在调用此方法后,我的数组中的所有片段都变为空。
我用来在片段管理器中添加片段的代码和我的数组来自Xamarin.Android,但我相信这个哲学与java类似:
var newFragment = new Fragment();
FragmentTransaction ft = FragmentManager.BeginTransaction();
ft.Add (MainActivity.CONTENT_VIEW_ID, newFragment,"myid");
((MainActivity)this.Activity).FragmentsList.Add (newFragment);
ft.AddToBackStack (null);
ft.Commit ();
FragmentsList是我保存对我添加到片段管理器的每个片段的引用的列表。
要清除后面的筹码,我打电话:
FragmentManager.PopBackStackImmediate (null, PopBackStackFlags.Inclusive);
调用此方法后,FragmentsList中的所有片段引用都将被销毁。
在调用PopBackStackImmediate后,我可以以某种方式在片段管理器中保留对片段的引用吗?