android-fragments 如何初始化片段?

wwodge7n  于 2022-11-14  发布在  Android
关注(0)|答案(1)|浏览(155)

我正在做一个学校项目,但是我遇到了一个片段事务问题,希望你能帮助我。当我点击文本视图时,它跳到另一个片段,我试图从用户那里获得旅行目的地和出发地信息。如果你在移动的片段中搜索,搜索列表会出现在回收器视图中,当你点击回收器项目时,目的地的文本变成了上一个片段中textview中的文本,所以我使用了addhideremove而不是replace来移动碎片。但是我不得不收到两条短信,因为我必须输入目的地和出发地。所以我让两个文本视图在点击时移动到同一个片段。但这里有一个问题。当片段被删除并再次添加时,删除的片段的信息仍然存在。所以我想知道如何使片段信息不存在。
这是我的密码
MainActivity

2 -> {
                Log.d(TAG, "DispositionFragment -> DepartRegionFragment")
                transaction
                    .setCustomAnimations(R.anim.horizon_enter,
                        R.anim.none,
                        R.anim.none,
                        R.anim.horizon_exit)
                    .add(R.id.fragment_container_view, departRegionFragment, "depart")
                    .hide(dispositionFragment)
                    .addToBackStack("depart")
                    .commit()
            }

            3 -> {
                Log.d(TAG, "DepartRegionFragment -> DispositionFragment")
                supportFragmentManager.popBackStack("depart", POP_BACK_STACK_INCLUSIVE)
                transaction
                    .setCustomAnimations(R.anim.horizon_enter,
                        R.anim.none,
                        R.anim.none,
                        R.anim.horizon_exit)
                    .remove(departRegionFragment)
                    .show(dispositionFragment)
                    .commit()
            }

DispositionFragment是具有textview的片段,而DepartregionFragment是要搜索的片段。

4dc9hkyq

4dc9hkyq1#

您需要移除片段交易上的addToBackStack方法呼叫。呼叫addToBackStack会将您的片段保留在内存中,而且只有检视会在离开该片段时损毁。

相关问题