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 に答える