在 kotlin 中恢复片段时如何实现 UI 更改

how to implement UI changes when resuming fragment in kotlin

我是 kotlin * android studio 开发的初学者。我的应用程序中有 2 个片段:一个主要片段和一个设置片段。两者共享一个视图模型。这是我要完成的工作:

  1. 应用程序启动,带您到主片段
  2. 用户点击设置按钮,将您带到设置片段
  3. 用户更改设置(存储在共享视图模型中的首选项)
  4. 用户 returns 到主片段,主片段的 UI 根据选择的设置进行更改

我已经完成了第 1-3 步并正在尝试实施第 4 步。我想我应该在我的主要片段中重写 onResume() 并在那里实施 UI 更改。首先,这是个好主意吗?如果是这样,我如何从 onResume() 访问我的 UI 元素?任何指导表示赞赏

我相信你的两个片段都生活在同一个 activity 中,在这种情况下使用共享 ViewModel 是个不错的主意。

话虽如此,对于设置,如果它们是原始的小型数据(字符串、整数等),将它们保存在 SharedPrefences 中可能是个好主意

您关于覆盖 onResume() 以更改您的 UI 的做法是正确的。由于您要从您的片段中进行这些更改,您应该覆盖 onViewCreated() 并且在 onViewCreated() 内部您可以像这样访问您的 UI 元素,例如:

val textView = activity.findViewById<TextView>(R.id.my_textview)

或者,您可以将 ViewModel 直接绑定到布局中,这样您甚至不必覆盖任何内容。您可以进一步阅读 here