gpt4 book ai didi

Android:来自膨胀布局的自定义 View

转载 作者:太空宇宙 更新时间:2023-11-03 10:22:29 25 4
gpt4 key购买 nike

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

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

如果我不需要类(class),那么我会调用 inflater 来执行此操作:

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

但我想改为调用我自己的类

MenuLayout menuLayout = new MenuLayout(myparams);

因为我需要创建一个类,所以我需要以某种方式继承构造函数中的 R.layout.menu_layout,我该怎么做?我猜 View 中没有 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);

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

关于Android:来自膨胀布局的自定义 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17836695/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com