相关疑难解决方法(0)

Jetpack Compose:从 Composable 函数启动 ActivityResultContract 请求

从 的1.2.0-beta01开始androidx.activity:activity-ktx,不能再launch使用创建的请求Activity.registerForActivityResult(),如上面“行为更改”下的链接中突出显示的那样,并在此处Google 问题中看到

应用程序@Composable现在应该如何通过函数启动这个请求?以前,应用程序可以MainActivity通过使用 向下传递链的实例,Ambient然后轻松启动请求。

例如,可以通过以下方式解决新行为:在 Activity 的onCreate函数之外实例化后,将注册活动结果的类传递到链中,然后在Composable. 但是,无法通过这种方式注册完成后要执行的回调。

可以通过创建 custom 来解决这个问题ActivityResultContract,它在启动时接受回调。但是,这意味着几乎没有任何内置功能ActivityResultContracts可以与 Jetpack Compose 一起使用。

TL; 博士

应用程序如何ActivityResultsContract@Composable函数发起请求?

android android-jetpack android-jetpack-compose registerforactivityresult

10
推荐指数
5
解决办法
3421
查看次数

Jetpack compose - 如何使用参数执行 popBackStack?

我有这样的场景,其中用户单击可组合A中的按钮,然后从可组合B的列表中选择一个项目,并从可组合C的列表中选择另一个项目。

我的问题是,当我从屏幕C选择一个项目时,我想使用我在BC中选择的内容导航回屏幕A。但是当给出参数时 popBackStack 不起作用。

这是代码,

navController.popBackStack(route = Screen.SelectPlan.route + "?regionId=${region.id}&operatorId=${operator.id}")
Run Code Online (Sandbox Code Playgroud)

现在,我看到 popBackStack 确实采用了路由参数,但将其转换为哈希码以向后导航,而不是创建类似 Uri 的导航函数。

android android-jetpack-compose

7
推荐指数
1
解决办法
4619
查看次数