我有一个要保留的约束片段
<fragment
android:id="@+id/fr_test"
android:name="com.test.FragmentTest"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
我使用交易隐藏/显示它以及全部。效果很好
fm.beginTransaction().hide(mainActivity.fr_test).commit()
fm.beginTransaction().show(mainActivity.fr_test).commit()
我使用事务来重新创建片段,以使相同的容器使用相同的约束
fm.beginTransaction().replace(R.id.mainActivity.fr_test, FragmentTest).commit()
但是,如果现在我尝试使用与之前相同的引用来隐藏/显示片段,则它什么也不做。我想丢失了引用,但我不知道如何找到它们。我试图这样保存引用:
fragRef = FragmentTest()
viewsManager.fm.beginTransaction().replace(R.id.fr_test, fragRef).commit()
然后使用:
fm.beginTransaction().hide(mainActivity.fragRef).commit()
fm.beginTransaction().show(mainActivity.fragRef).commit()
但仍然一样。
我做错了什么?
答案 0 :(得分:0)
当您致电replace
时,他致电remove(fragment)
,并在致电add(int, fragment, string)
之后。我认为您应该使用add
方法而不是replace
,并使用hide
和show