android 如何使jetpack合成器生命周期与Fragment生命周期兼容?

myss37ts  于 2023-01-07  发布在  Android
关注(0)|答案(1)|浏览(253)

我以前的应用是使用Fragments作为页面的。现在我将Jetpack Compose集成到我的应用中。页面如下所示:
HomePageFragment -〉使用传统XML创建的主页
ItemListPageFragment -〉一个片段 Package 了ComposeView,即所有内容都是由Compose完成的
ItemDetailPageFragment -〉使用传统XML创建的项目详细信息页面
以下是我想要达到的效果:

  • 当进入ItemListPage时,显示加载,然后显示项目列表。然后用户向下滚动一点,选择一个项目,跳转到ItemDetailPage
  • 当从ItemDetailPage返回到ItemListPage时,UI不应重新加载,而是停留在其离开的位置。

我的项目列表页面是这样的:

@Composable
fun Content(){

   // third party lib that kind of like useSWR for React
   val states = useRequest(fetcher = {....})
   
   if(states.error) {...}
   if(states.loading) {....}

   // render list of items
   ....
}

现在,当我从ItemDetailPage返回到ItemListPage时,它会触发获取和加载UI。
我认为问题是片段在“页出”时破坏视图。然后当它“返回”页面时,它创建新的ComposeView并触发onLoad事件。

thigvfpy

thigvfpy1#

使用视图模型(https://developer.android.com/codelab/basic-android-kotlin-compose-viewmodel-and-state?继续= https%3A%2F%2F开发者. android.com%2F课程%2F路径%2Fandroid基础组合单元4路径-1% 23 codelab-https %3A%2F% 2F开发者. android.com%2Fcodelab%2F基本android-kotlin-compose-viewmodel-and-state #4)

使用rememberSavable,以便即使有任何配置更改也不会发生更改

相关问题