在 kotlin 中恢复片段时如何实现 UI 更改
how to implement UI changes when resuming fragment in kotlin
我是 kotlin * android studio 开发的初学者。我的应用程序中有 2 个片段:一个主要片段和一个设置片段。两者共享一个视图模型。这是我要完成的工作:
- 应用程序启动,带您到主片段
- 用户点击设置按钮,将您带到设置片段
- 用户更改设置(存储在共享视图模型中的首选项)
- 用户 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
我是 kotlin * android studio 开发的初学者。我的应用程序中有 2 个片段:一个主要片段和一个设置片段。两者共享一个视图模型。这是我要完成的工作:
- 应用程序启动,带您到主片段
- 用户点击设置按钮,将您带到设置片段
- 用户更改设置(存储在共享视图模型中的首选项)
- 用户 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