我基于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构造函数中使用其他两个参数,但我没有找到任何教程如何做到这一点.
最佳答案
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的构造函数