如何克隆视图?


67

我的问题几乎就是这个问题:

克隆textview将其附加到ViewGroup

但是,我夸张了一个视图,然后出于性能原因尝试在对象级别克隆它(我不想每次都解析XML),因此该答案无济于事。View.clone()受保护,并且显然没有复制构造函数。有什么办法吗?


2
您确定在对象级别克隆它比对它充气两次要快得多吗?是什么在指导这一主张?
谢丽尔·西蒙

1
我想我说错了,这更像是我想看看它是否会更快。
SapphireSun

1
如果要创建特定视图的许多实例,则可能应该使用ListView或其他一些元素,这些元素将在滚动时回收视图实例。
谢丽尔·西蒙

1
问题是我在scrollview中进行了更复杂的布局。这个问题是放弃该方法的结果。由于某些原因,ListViews与ScrollViews不能很好地配合。
SapphireSun

Answers:


107

您无法克隆视图,方法是每次都对视图进行膨胀。请注意,XML被编译为二进制文件,可以非常有效地对其进行解析。


8
我今天在某处读到,夸大观点非常昂贵。特别是在列表中。
2014年

6
@frostymarvelous,这比重新使用已经创建的视图要昂贵得多(虽然速度并不快)(尽管并非总是这样),但是在扩展和以编程方式创建新视图之间只有很小的区别。
Reed

5
您无法克隆特定视图!= o太神奇了!
M. Usman Khan 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.