如何在Android中缓存视图?

如何在Android中缓存视图?,第1张

概述我正在构建一个动态生成一些标签和视图的应用程序.  我定义了我的“自定义视图”应该在xml布局中看起来如何,并且从代码我膨胀这个布局. 因为膨胀的布局总是相同的,所以我只想做一次这个步骤.  我有布局后,我想缓存它,并在下次需要时使用它. 问题是,如果我将我的膨胀布局放在缓存中(通过示例在hashmap中)并将其添加到父布局,下次当我尝试再次添加它时(这次我将从缓存中获取布局)系统说我的布局已经有 我正在构建一个动态生成一些标签和视图的应用程序.
我定义了我的“自定义视图”应该在xml布局中看起来如何,并且从代码我膨胀这个布局.

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

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

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

添加了一些代码:

private static HashMap<String,linearLayout> mComponentsCache;// inflate and add the layout in cachelayout = (linearLayout)mLf.inflate(R.layout.form_textBox,mHolder,false);mComponentsCache.put(FormFIEldType.TYPE_TEXT,layout);
解决方法 你实际上不能这样做.我引用你的评论

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

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

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

底线:坚持通货膨胀.

总结

以上是内存溢出为你收集整理的如何在Android中缓存视图?全部内容,希望文章能够帮你解决如何在Android中缓存视图?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1148911.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存