Android addView()方法简述(一)

Android addView()方法分为以下几个部分
addView()方法简述(一)
addView()方法实际使用和面试手册(二)

简介

大家都知道addView()一般用来动态添加View,LinearLayout、RelativeLayout添加子控件都可以用addView()。去看Android官方文档:ViewGroup里有addView的相关介绍。大概如下:

方法 解释
addView (View child, ViewGroup.LayoutParams params) Adds a child view with the specified layout parameters.
- 添加具有指定布局参数的子视图。默认往ViewGroup最后添加。
addView (View child, int index) Adds a child view. If no layout parameters are already set on the child, the default parameters for this ViewGroup are set on the child.
- 添加子视图。如果没有在子视图上设置布局参数,则此ViewGroup的默认参数将在子视图上设置。看完这个就知道和上一个的区别了。添加到指定的位置。
addView (View child, int index,ViewGroup.LayoutParams params) Adds a child view with the specified layout parameters.
- 添加具有指定布局参数的子视图。添加到指定的位置。
addView (View child) Adds a child view. If no layout parameters are already set on the child, the default parameters for this ViewGroup are set on the child.
- 添加子视图。如果没有在子视图上设置布局参数,则此ViewGroup的默认参数将在子视图上设置。
addView (View child, int width, int height) Adds a child view with this ViewGroup’s default layout parameters and the specified width and height.
- 使用此ViewGroup的默认布局参数和指定的宽度和高度添加子视图。

看完这个表格,其实对addView方法的不同参数已经有了大致的了解了。这里要说明的是ViewGroup才有addView方法,View是没有的。但是参数中的View可以是一个ViewGroup。

各个参数的具体说明

注意:不要从
View.draw(android.graphics.Canvas)、View.onDraw(android.graphics.Canvas)、dispatchDraw(android.graphics.Canvas)
或任何相关方法调用此方法。

1.addView (View child, ViewGroup.LayoutParams params)

这个方法是将第二个参数指定的布局给第一个参数传入的子视图中。

2.addView (View child, int index)

这个方法是将传入的子视图放在父布局的指定位置。
一个竖向的LinearLayout,如果你把index指定为-1则每次都会把子视图放在最后一个,也就是一个一个向下叠加,新加入的会放在最后;如果把Index指定为0,新加入的将会在头部把先加入的子视图挤下去,达到在顶部插入视图的效果。以此类推,别的数字和布局都差不多,大家多思考就能想出效果。

3.addView (View child, int index,ViewGroup.LayoutParams params)

这个就是前两个的一个结合,不多说了。

4.addView (View child)

需要注意的是,这个会吧父布局的布局信息添加给这个子视图。所以,如果你想这个子视图有自己的布局信息,就要先通过setLayoutParams设置好布局信息再addView。

5.addView (View child, int width, int height)

这个看上去就很容易,通过width和height来指定子视图的宽高。

总结

其实好多公司的APP都是没有Activity布局的,他们的布局其实就是一个空的LinearLayout指定id,然后通过findViewById找到这个根布局后添加头部等信息,这样就可以复用布局文件,写起来也容易。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章