我正在做一个学校项目,但是我遇到了一个片段事务问题,希望你能帮助我。当我点击文本视图时,它跳到另一个片段,我试图从用户那里获得旅行目的地和出发地信息。如果你在移动的片段中搜索,搜索列表会出现在回收器视图中,当你点击回收器项目时,目的地的文本变成了上一个片段中textview中的文本,所以我使用了add
,hide
,remove
而不是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
是要搜索的片段。
1条答案
按热度按时间4dc9hkyq1#
您需要移除片段交易上的addToBackStack方法呼叫。呼叫addToBackStack会将您的片段保留在内存中,而且只有检视会在离开该片段时损毁。