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