当从撰写屏幕A导航到撰写屏幕B,然后返回时,它会重新加载屏幕A的所有组件,我如何避免重新加载A?

问题描述 投票:0回答:1

我在屏幕 A 中使用分页 3 惰性列从 api 加载一些数据,当我单击惰性列的项目进行导航时,它导航到屏幕 B,但当返回到屏幕 A 时,它会调用 Api,我在其中重新加载所有组件。

解决方案可能有很多,但我需要一个适当的标准解决方案来处理如何在从屏幕 B 返回时保留屏幕 A 所有组件而不重新加载。(例如,行为就像从一个活动导航到另一个活动并返回时保持全部相同)

提前致谢

导航代码在屏幕 A 中使用以导航到屏幕 B

navController.navigate(NavigationScreen.NewsDetailsScreen.route)

从屏幕 B 返回到 A

navController.navigateUp()
android navigation android-jetpack-compose
1个回答
0
投票

所以,我猜你没有使用视图模型?数据加载/重新加载、存储的最佳解决方案是使用它们,但是当然,您可以在没有它们的情况下做一些事情。

您可能正在使用 Remember,但每次您从屏幕导航时,Remember 都会重新组合。有一个函数 RememberSaveable 可以在更改之间保存您的数据。阅读更多内容:文档

© www.soinside.com 2019 - 2024. All rights reserved.