0

我正在设计自己的选项卡控件。我创建了 2 个自定义视图。第一个被称为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有一个成员变量,它是ArrayLists的一个MyTab。我有一个公共函数调用addTab(String strTabName)来添加一个新MyTabMyTabBar. 我的问题是,当我执行以下操作时:

MyTab tab = new MyTab(...);

在里面MyTabBar,我如何获得ContextAttributeSet需要传递给MyTab

或者我应该以某种方式膨胀它?

4

1 回答 1

2

带有 AttributeSet 参数的视图构造函数仅在您从 xml 文件膨胀视图时使用,否则编写一个只有 Context 参数的构造函数,并使用 super(context); 要从 MyTabBar 获取上下文,请使用 this.getContext();

于 2013-09-26T19:59:14.523 回答