Android 中自定义 ViewGroup
public? void?addView(View?child)?{
addView(child,?-1);
}
这个方法是用来想 View 容器中添加组件用的。我们可以使用这个方法想这个 ViewGroup 中添加组件。
3、getChildAt 方法
public?View?getChildAt( int?index)?{
try?{
return?mChildren[index];
}? catch?(IndexOutOfBoundsException?ex)?{
return? null;
}
}
这个方法用来返回指定位置的 View。
注意:ViewGroup 中的 View 是从 0 开始计数的。
可以说我们自定义 ViewGroup 时这三个方法是至关重要的,下面我们就来看看自定义 ViewGroup 使用。
三、一个小 Demo
我们新建一个叫 AndroidViewGroup 的工程,Activity 起名为 MainActivity。在写一个继承于 ViewGroup 的类,名叫 HelloViewGroup。
-->HelloViewGroup 类
public? class?HelloViewGroup? extends?ViewGroup?{
public?HelloViewGroup(Context?context,?AttributeSet?attrs)?{
super(context,?attrs);
// ?TODO?Auto-generated?constructor?stub
}
public?HelloViewGroup(Context?context)?{
super(context);
// ?TODO?Auto-generated?constructor?stub
}
@Override
protected? void?onLayout( boolean?changed,? int?l,? int?t,? int?r,? int?b)?{
// ?TODO?Auto-generated?method?stub
}
}
-->MainActivity 类
public? class?MainActivity? extends?Activity?{
/** ?Called?when?the?activity?is?first?created.? */
public? void?onCreate(Bundle?savedInstanceState)?{
super.onCreate(savedInstanceState);
setContentView( new?HelloViewGroup( this));
}
}
这时你可以运行一下,发现屏幕除了状态栏了那个 Label 是一片黑,呵呵。下面我们来修改代码,让自己的 ViewGroup 火起来。
我们新建一个名叫 myAddView 的方法,这个方法用来向 ViewGroup 中添加组件:
/**?????*?添加 View 的方法
*? */
public? void?myAddView(){
ImageView?mIcon?=? new?ImageView(mContext);
mIcon.setImag
eResource(R.drawable.haha);
addView(mIcon);
}
评论