如何在Android中缓存视图?

前端之家收集整理的这篇文章主要介绍了如何在Android中缓存视图?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在构建一个动态生成一些标签和视图的应用程序.
我定义了我的“自定义视图”应该在xml布局中看起来如何,并且从代码我膨胀这个布局.

因为膨胀的布局总是相同的,所以我只想做一次这个步骤.
我有布局后,我想缓存它,并在下次需要时使用它.

问题是,如果我将我的膨胀布局放在缓存中(通过示例在hashmap中)并将其添加到父布局,下次当我尝试再次添加它时(这次我将从缓存中获取布局)系统说我的布局已经有了父母.

您知道在不删除子视图的情况下从父级分离子视图的任何方法吗?

添加了一些代码

private static HashMap<String,LinearLayout> mComponentsCache;

// inflate and add the layout in cache
layout = (LinearLayout)mLf.inflate(R.layout.form_textBox,mHolder,false);
mComponentsCache.put(FormFieldType.TYPE_TEXT,layout);

解决方法

你实际上不能这样做.我引用你的评论

我想以这种方式这样做,因为没有必要重新膨胀已经膨胀的相同视图.作为一个例子,我必须显示5个具有相同布局但内容不同的文本框.

您每次都必须充气,因为您需要此文本框的5个不同实例.如果您不想膨胀,您应该找到一种方法来复制已经创建的布局,这将无法提高,因为复制也是“代价高昂”.

事实上,只是为了说清楚,膨胀视图不会进行XML解析(以防万一你这么认为),它是编译代码,因此,努力实现创建一个方法你的观点副本毫无意义.

底线:坚持通货膨胀.

猜你在找的Android相关文章