Android中自定义ViewGroup,移动混合开发

等等,不一而足,眼界有多高相信看到的就有多远,呵呵。

二、ViewGroup的三个方法

在继承ViewGroup时有三个重要的方法,下面我们就来看看:

1、onLayout方法

protected  void onLayout( boolean changed,  int left,  int top,  int right,  int bottom) {

}

在我们继承ViewGroup

《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享

时会在除了构造函数之外提供这个方法,我们可以看到,在ViewGroup的源代码中方法是这样定义的,也就是父类没有提供方法的内容,需要我们自己实现。

当View要为所有子对象分配大小和位置时,调用此方法

2、addView方法

public  void addView(View child) {

addView(child, -1);

}

这个方法是用来想View容器中添加组件用的。我们可以使用这个方法想这个ViewGroup中添加组件。

3、getChildAt方法

Android中自定义ViewGroup,移动混合开发

public View getChildAt( int index) {

try {

return mChildren[index];

}  catch (IndexOutOfBoundsException ex) {

return  null;

}

}

Android中自定义ViewGroup,移动混合开发

这个方法用来返回指定位置的View。

注意:ViewGroup中的View是从0开始计数的。

可以说我们自定义ViewGroup时这三个方法是至关重要的,下面我们就来看看自定义ViewGroup使用。

三、一个小Demo

我们新建一个叫AndroidViewGroup的工程,Activity起名为MainActivity。在写一个继承于ViewGroup的类,名叫HelloViewGroup。

Android中自定义ViewGroup,移动混合开发

–>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

}

}

Android中自定义ViewGroup,移动混合开发

Android中自定义ViewGroup,移动混合开发

–>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));

}

}

eated.  */

public  void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView( new HelloViewGroup( this));

}

}

上一篇:Android中LayoutAnimation的分析(二)


下一篇:2020-OPPO-Android-开发技术面总结有解析(经典,高难度篇,android面试八股文