
- 默认ViewStub在创建时会设置为gone;
public ViewStub(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { super(context); // ... setVisibility(GONE); // ... } - 如果手动对visibility设置为visible, invisible时,会执行inflate
public void setVisibility(int visibility) { // ... if (visibility == VISIBLE || visibility == INVISIBLE) { inflate(); // ... } -
ViewStub在执行完inflate后,会将该ViewStub对象置为null
- ViewStub 在inflate后会将stub的LayoutParams设置给inflatedView
public View inflate() { // ... replaceSelfWithView(view, parent); // ... } private void replaceSelfWithView(View view, ViewGroup parent) { // ... final ViewGroup.LayoutParams layoutParams = getLayoutParams(); if (layoutParams != null) { parent.addView(view, index, layoutParams); } else { parent.addView(view, index); } } - ViewStub为final,不能继承




近期评论