将状态(子视图)保存在自定义ViewGroup中

问题描述 投票:0回答:1

我为用 Kotlin 编写的应用程序创建了一个自定义 ViewGroup,特别是 FrameLayout,我以编程方式向其中添加多个子视图。子视图是根据用户交互添加的,因此不是在父视图初始化时添加的。更改屏幕方向时,将重新绘制 FrameLayout,而不会显示子视图。如何保留 FrameLayout 的状态,以便在屏幕方向更改时重新绘制子视图?

此外,FrameLayout 是否可以以某种方式保留子视图的状态(例如 EditText 中的文本),或者子视图是否需要自行管理其状态?

谢谢!

android kotlin view viewgroup childviews
1个回答
0
投票

您可以这样解决问题:

  1. 使用 xml 资源文件定义稍后将在 R.id 类中使用的 ID,例如:res/values/ids.xml

<resources> <item name="my_edit_text" type="id"/> </resources>

  1. 按照以下方式将实际 id 设置为您的视图:

    editTextView.id = R.id.my_edit_text

© www.soinside.com 2019 - 2024. All rights reserved.