5

我正在基于RelativeLayout代码中的类创建自己的布局

我有 XML 中定义的布局的基础知识R.layout.menu_layout(样式、背景可绘制、边距、高度)

如果我不需要上课,那么我会调用 inflater 来执行此操作:

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);在视图中。也许我可以在 View 构造函数中使用其他两个参数,但我也没有找到任何教程如何做到这一点。

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);

我认为你可以更改参数的构造函数

于 2013-07-24T17:37:05.907 回答