我有一个包含多个按钮的Home片段,当我单击Contact按钮时,另一个片段被打开。在这个片段中,我有两个子片段和两个按钮,我可以使用这些按钮在这些子片段之间切换。问题是当我按下Back按钮时,它会在子片段之间切换回来,然后才返回Home片段。但我想直接回到Home Fragment。
这是我打开子片段的方式
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
val contactsListFragment = ContactsListFragment()
val groupsListFragment = GroupsListFragment()
activity?.title = getString(R.string.contacts_and_groups)
openChildFragment(contactsListFragment)
binding.contactsButton.setOnClickListener {
openChildFragment(contactsListFragment)
}
binding.groupsButton.setOnClickListener {
openChildFragment(groupsListFragment)
}
}
private fun openChildFragment(fragment: Fragment) {
val childFragmentManager = childFragmentManager
val transaction: FragmentTransaction = childFragmentManager.beginTransaction()
transaction.replace(binding.contactsGroupsFl.id, fragment)
transaction.addToBackStack(null)
transaction.commit()
}
如果有人能帮我解决这个问题就太好了。谢谢!
1条答案
按热度按时间9o685dep1#
我认为你应该在两个片段中为back按钮添加一个侦听器,这样当它被按下时,你就可以清除所有backstack。