android - removeAllViews() 对 subview 有什么作用?

标签 android layout view

我的布局中有以下层次结构:

ScrollView
    RadioGroup
        RelativeLayout
            RadioButton
            ImageView
        RelativeLayout
            RadioButton
            ImageView
            ...

现在的重点是,它在 XML 编辑器中看起来不错,其中 RadioButtonsImageViews 定义了默认值(占位符),但是当我启动一个 Activity 并调用RadioGroup 上的removeAllViews(),所有ImageViews 都消失了。有趣的是,所有按钮都获得了新值,只有 ImageViews 没有更新(设置新的源图像没有结果)。

所以,我的问题是:removeAllViews() 是完全删除 subview (就像它们从未存在于布局 XML 文件中一样)还是只是删除一些值,留下要定义的 View 参数(比如设置新的源图像或新的按钮描述)?

最佳答案

来自official documentation , removeAllViews():

Call this method to remove all child views from the ViewGroup.

调用此方法会将所有 subview 设置为null,因此它将从自身中删除 subview ,并且此 subview 变为无效(或不被视为子),但不像它在 XML 文件中从未存在过。

这是 removeAllViews() code :

public void removeAllViews() {
     removeAllViewsInLayout();
     requestLayout();
     invalidate();
} 

正如您在 removeAllViewsInLayout() 中看到的那样方法,它将子值设置为空:

children[i] = null;

关于android - removeAllViews() 对 subview 有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29926008/

相关文章:

java - 如何将 DatePicker 设置为当前日期后一个月?

android - ProGuard 不是从 Eclipse 运行的吗?

出现键盘时IOS App Layout Constraint Errors

java - 将布局 XML 的内容插入特定于 ID 的 View

sql - Oracle:具有平面表中唯一项目的物化 View

xml - Joomla,为特定 View 添加任务参数

android - 在 onCreate() 中显示对话框

java - 如何在android中获取蓝牙耳机设备的信息(特别是耳机设备名称)

css - 居中 div 和右浮动 div

mysql - View 和零参数过程有什么区别?