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



我是在kotlin*android工作室开发的初学者。我的应用程序中有两个片段:一个主片段和一个设置片段。两者共享一个视图模型。以下是我想要实现的目标:

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

我已经完成了步骤1-3,正在尝试实现4。我想我应该在我的主片段中覆盖onResume((,并在那里实现UI更改。首先,这是个好主意吗?如果是,我如何从onResume((访问我的UI元素?感谢任何指导

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

话虽如此,对于设置,如果它们是原始的小尺寸数据(String、int等(,则最好将它们保存在SharedPrefences

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

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

或者,您可以将ViewModel直接绑定到布局中,这样您甚至不必覆盖任何内容。你可以在这里阅读更多关于

最新更新