setContentView() 删除使用 addView() 添加的元素

setContentView() deletes elements which have been added with addView()

我的项目有 2 个布局。两者都有一个按钮,可以使用 setContentView 方法在彼此之间交换。每当我在这两种布局之间切换时,我使用 addView() 添加的每个 UI 元素都会丢失。但是静态 XML 元素仍然存在。

那是因为布局重新膨胀,当你调用 setContentView(R.layout.xml) 时,所有视图都在 xml 中指定,这是在幕后发生的,所有动态添加的视图都会走了。

可选方案:

  1. 调用 setContentView() 后再次添加视图。
  2. 这 2 个布局可以相互叠加,您可以切换它们的可见性。使用 GONE 隐藏布局,而不是 INVISIBLE 如果布局上有可点击的元素。