Android 从自定义线性布局中创建自定义线性布局

Android 从自定义线性布局中创建自定义线性布局,android,android-linearlayout,Android,Android Linearlayout,我正在设计自己的选项卡控件。我已经创建了两个自定义视图。第一个称为MyTab,它源自LinearLayout。第二个称为MyTabBar,它源自LinearLayout 两者的构造函数如下所示: public MyTab(Context context, AttributeSet attrs) { super(context, attrs); LayoutInflater inflater = (LayoutInflater) context.getSystemService(

我正在设计自己的选项卡控件。我已经创建了两个自定义视图。第一个称为
MyTab
,它源自
LinearLayout
。第二个称为
MyTabBar
,它源自
LinearLayout

两者的构造函数如下所示:

public MyTab(Context context, AttributeSet attrs) {
    super(context, attrs);

    LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    inflater.inflate(R.layout.layout_my_tab, this);
}
MyTabBar
有一个成员变量,它是
MyTab
s的
ArrayList
。我有一个名为
addTab(String strabname)
的公共函数,用于将新的
MyTab
添加到
MyTabBar
。我的问题是,当我做以下事情时:

MyTab tab = new MyTab(...);
MyTabBar
内部,我如何获取传递到
MyTab
所需的
上下文
属性集


或者我应该以某种方式扩展它吗?

只有当您从xml文件扩展视图时,才使用带有AttributeSet参数的视图构造函数,否则编写只有上下文参数的构造函数,并使用super(上下文);
要从MyTabBar中获取上下文,请使用此.getContext()

你不应该在视图的构造函数中膨胀,我认为这不是你想要做的。膨胀方法返回一个你没有使用的视图,你没有存储它,你不能在构造函数中返回它,你混淆了膨胀和构造