删除或添加视图与ViewStub

时间:2016-05-17 19:15:54

标签: android layout view viewstub

.remove()。addView()和使用ViewStub有什么区别? ViewStub如何提高布局效率?

2 个答案:

答案 0 :(得分:1)

正如您在this article中所看到的,当您使用ViewStub时,除非需要,否则存根中<include />的布局不会被夸大(将存根的可见性设置为VISIBLE或致电show())。 优点是,所包含的视图都不是视图层次结构的一部分,因此您的视图更轻。

查看此示例: ViewStub没有膨胀: enter image description here

膨胀后: enter image description here

当然,你在这里有一个权衡,当你设置VISIBLE(或show())时,会发生一个reinflate(仅在ViewStub布局上)。

答案 1 :(得分:0)

ViewStub与在性能方面添加View相同。看一下ViewStub.inflate()。它的作用是动态添加视图。

public View inflate() { ... final View view = factory.inflate(mLayoutResource, parent, false); ... parent.addView(view, index, layoutParams); } else { parent.addView(view, index); } ... return view; }

https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/view/ViewStub.java

相关问题