5

RelativeLayoutコード内のクラスに基づいて独自のレイアウトを作成しています

XMLで定義されたレイアウトの基本がありますR.layout.menu_layout(スタイル、背景の描画可能、マージン、高さ)

クラスが必要ない場合は、インフレータを呼び出してこれを行います。

RelativeLayout menuLayout = (RelativeLayout)inflater.inflate(R.layout.menu_layout, root);

しかし、代わりに自分のクラスを呼び出したい

MenuLayout menuLayout = new MenuLayout(myparams);

R.layout.menu_layoutin コンストラクターを何らかの方法で継承する必要があるクラスを作成する必要があるため、どうすればそれを行うことができますか? this.setLayout(res);ビューにはまたはがないと思いthis.setResource(res);ます。ビューコンストラクターで他の2つのパラメーターを使用できるかもしれませんが、それを行う方法のチュートリアルも見つかりませんでした。

4

1 に答える 1

2
public class MenuLayout extends RelativeLayout {
    public MenuLayout(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        initView(context);
    }

    public MenuLayout(Context context, AttributeSet attrs) {
        super(context, attrs);
        initView(context);
    }

    public MenuLayout(Context context) {
        super(context);
        initView(context);
    }

    private void initView(Context context) {
        View view = LayoutInflater.from(context).inflate(R.layout.menu_layout, null);
        addView(view);
    }
}

今、あなたは使用することができます

MenuLayout menuLayout = new MenuLayout(myparams);

私が思うparamsのコンストラクターを変更できます

于 2013-07-24T17:37:05.907 に答える