android - 如何 "deflate"一个 ViewStub?

标签 android deflate inflate viewstub

所以我可以在运行时为 ViewStub 充气。假设我想让它消失,然后可能会根据发生的某些事件再次充气(例如,根据用户在屏幕上选择的内容充气和放气的工具栏)。

我可以使用 View.setVisibility(View.GONE).... 还有其他方法吗?

或者我在这里做错了什么?

谢谢! :)

最佳答案

膨胀布局可能会很昂贵,尤其是在旧设备上。将 ViewStub 视为更多的延迟加载机制,用于可能会或可能不会扩展的 View 子树,而不是在运行时交换 View 层次结构部分的方法。一旦膨胀,在 VISIBLE/GONE 之间切换就没有问题了。 GONE 将使框架在昂贵的遍历期间跳过该子树。

只要您不需要膨胀 View 使用的内存,这是正确的。将可见性设置为 GONE 不会释放任何内存;它仅将 View 标记为已用于布局和绘图目的。要释放 viewtub 的膨胀 View 的内存,您实际上必须删除膨胀的 View 并再次用新的 viewtub 替换它以供将来使用。

关于android - 如何 "deflate"一个 ViewStub?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3842375/

相关文章:

安卓 GPS 供应商

flash - 自定义 DEFLATE 实现以加速 PNG 编码

android - 我可以从未编译的 android XML 中扩充 android Activity 吗?

android - 膨胀 View 为空

android - 如何设置复制粘贴工具栏的背景颜色?

Android:使用 VPNService 的 VPN 连接

java - 如何根据日期/时间过滤 ArrayList 并将其显示在 Android Studio 的回收 View 中?

swift - 使用 DEFLATE (RFC 1951) 函数压缩和解压缩 zlib (RFC 1950)

php - 无法使用 cURL PHP 解码 gzip

javascript - 与膨胀算法斗争