我正在一项活动中使用片段.我希望碎片销毁碎片时,用户执行一些行动,如点击某个按钮,使用户自动返回活动(不按后退按钮).

我对Android还是个新手.所以我不知道怎么做这个动作.

推荐答案

在Android SDK中,popBackStackImmediate()和popBackStack()都与FragmentManager一起使用,以将碎片弹出后台堆栈(简单地说,移除碎片).

  1. PopBackStackImmediate():

此方法立即将TOP状态从后台堆栈中弹出,并 将控制权带回活动.如果没有要弹出的条目,则它 返回FALSE.这是一个synchronous操作,可以阻止用户界面 如果事务很重,则返回线程.

val fragmentManager = requireActivity().supportFragmentManager
val isPopped = fragmentManager.popBackStackImmediate()
  1. PopBackStack():

此方法计划顶层状态的弹出操作在 UI线程已准备就绪.这是一个asynchronous的操作,是 当您不想阻止UI线程时,通常使用起来更安全.

val fragmentManager = requireActivity().supportFragmentManager
fragmentManager.popBackStack()

因此,如果您想立即销毁碎片并接受可能的阻塞,可以使用popBackStackImmediate().如果要安排弹出操作在不阻塞UI线程的情况下异步发生,请使用popBackStack().

Android相关问答推荐

Android Jetpack Compose Material3主题配色方案

NativeScript在`ns run android`上重复Kotlin类

有人能帮我在应用程序上使用模拟位置时避免被发现吗?我已经反编译并粘贴了一个代码,S小文件

穿戴与iPhone连接的安卓操作系统

插入视图模型时,dagger 未命中绑定错误

Android写/读二进制文件到共享存储

页面更改时不显示 cogo toast 消息

更改活动(上下文)对接收到的uri的访问权限的影响?

React-Native Manifest 合并失败并出现多个错误

Andorid Studio编译器如何自动为变量editText生成mutableStateOf("")的方法名?

在 MVVM Jetpack Compose 上添加依赖项时出现重复类错误

从 Jetpack Compose 中的 IconButton 中删除黑色色调

如何用jetpack compose实现垂直李克特量表

在 Jetpack Compose 中单击时更改表面项目的背景 colored颜色

我不能在 jetpack Compose 中使用 TextField()(material 3)

如何在 TextButton 中分隔文本和图标

Jetpack Compose:mutableStateOf 不随流量更新

如何使用 recyclerview 实现这样的布局?

如何使用 Jetpack Compose 在应用程序中实现本地化

在delphi中将Jnet_uri转换为Tbitmap