我正在基于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_layout
,我该怎么做呢?我猜视图中没有this.setLayout(res);
或this.setResource(res);
。也许我可以在View构造函数中使用其他两个参数,但我没有找到任何教程如何做到这一点。
答案 0 :(得分: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的构造函数我认为