从自定义LinearLayout中创建自定义LinearLayout

时间:2013-09-26 19:47:28

标签: android android-linearlayout

我正在设计自己的标签控件。我创建了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的成员变量是ArrayList的{​​{1}}。我有一个名为MyTab的公共函数,可以向addTab(String strTabName)添加新的MyTab。我的问题是,当我执行以下操作时:

MyTabBar

MyTab tab = new MyTab(...); 内,我如何获得要传递给MyTabBar的{​​{1}}和Context

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

1 个答案:

答案 0 :(得分:2)

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