0

我想知道从自定义视图的构造函数中膨胀子视图是否被认为是不好的做法,如果是这样,可能是为什么会这样?

public class MyLinearLayout : LinearLayout
{ 
    public MyLinearLayout (Context context, IAttributeSet attributes) : base(context, attributes) 
    { 
        LayoutInflater inflater = (LayoutInflater)context.ApplicationContext.GetSystemService(Context.LayoutInflaterService);

        View child = inflater.Inflate(Resource.Layout.ChildView, null);

        this.AddView(child);
    }
}

相对

public class MyLinearLayout : LinearLayout
{ 
    public MyLinearLayout (Context context, IAttributeSet attributes) : base(context, attributes) 
    { 
        View child = new ChildView(context);
        child.LayoutParameters = new LayoutParameters(...);

        this.AddView(child);
    }
}

谢谢你。

4

1 回答 1

1

这种方法没有问题,因为它可以在诸如NumberPicker. 如果您使用该LayoutInflater.inflate(int, ViewGroup, boolean)方法附加到根视图,则可以使用Merge优化。例如

View child = inflater.Inflate(R.layout.ChildView, this, true);

于 2013-07-03T16:47:08.457 回答