我正在一项活动中使用片段。我希望片段在用户执行某些操作时销毁片段,例如单击某个按钮,以便用户自动返回到活动(无需按后退按钮)。
我是安卓新手。所以我不知道如何执行此操作。
在 Android SDK 中,popBackStackImmediate() 和 popBackStack() 都与 FragmentManager 一起使用,以将片段从返回堆栈中弹出(简单来说就是删除片段)。
此方法立即从返回堆栈中弹出顶部状态,并 将控制权重新带回活动。如果没有要弹出的条目,则 返回假。这是一个同步操作,可以阻塞 UI 如果交易量很大,则线程。
val fragmentManager = requireActivity().supportFragmentManager
val isPopped = fragmentManager.popBackStackImmediate()
此方法安排在以下情况下发生顶部状态的弹出操作 UI 线程已准备就绪。这是一个异步操作 当您不想阻塞 UI 线程时,通常使用起来更安全。
val fragmentManager = requireActivity().supportFragmentManager
fragmentManager.popBackStack()
因此,如果您想立即销毁片段并且可以接受潜在的阻塞,请使用 popBackStackImmediate()。如果您想安排弹出操作异步发生而不阻塞 UI 线程,请使用 popBackStack()。