1

假设我们有一个简单的片段,其视图基于StateFlow视图模型中保存的 UI 状态。我们onCreate()通常收集状态:

override fun onCreate(savedInstanceState: Bundle?) {
        lifecycleScope.launchWhenStarted {
            viewModel.uiState.collect {
                // UI update according to state
            }
        }
    }

现在我们导航到下一个片段 - 前一个片段由片段管理器保存,但视图被销毁。在新的片段上,我们弹回堆栈,现在令人惊讶的是:前一个片段正在重新创建初始状态的视图,即使我们尝试更新状态流也不会发生任何事情,因为它不会一个接一个地发出两次相同的数据。

那么,返回fragment后如何恢复视图状态呢?

4

0 回答 0