写点什么

Android 中自定义 ViewGroup

用户头像
Android架构
关注
发布于: 2021 年 11 月 07 日

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


《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


eResource(R.drawable.haha);


addView(mIcon);


}



用户头像

Android架构

关注

还未添加个人签名 2021.10.31 加入

还未添加个人简介

评论

发布
暂无评论
Android中自定义ViewGroup