Kotlin皮革替换的碎片不起作用

我有一个要保留的约束片段

    <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()

但仍然一样。

我做错了什么?

happy219 回答:Kotlin皮革替换的碎片不起作用

当您致电replace时,他致电remove(fragment),并在致电add(int,fragment,string)之后。我认为您应该使用add方法而不是replace,并使用hideshow

来控制UI
本文链接:https://www.f2er.com/3158710.html

大家都在问