自定义View思想——标题栏自定义
来源:互联网 发布:大学生网络借贷论文 编辑:程序博客网 时间:2024/05/01 14:13
(1)编写好目的布局(XML文件),这里用LinearLayout作为例子
大概布局如下:
<LinearLayout>
<Button>
<TextView>
<RelativeLayout>
.....
就是一个布局中包涵若干个孩子,这里孩子有没有id都不重要,因为实例化的时候是根据控件(孩子)所在的位置来实例化。
(2)定义一个类继承LinearLayout,实现LinearLayout的构造方法,一般情况下实现前三个构造方法就可以了。
其中:
第一个构造方法在创建时调用
第二个方法在实例化时候调用
第三个方法在布局文件使用该类是的时候调用。
在获取上下文环境中一般可以在第三个构造方法中获取,因为为了简单起见,第一个构造方法直接调用第二个构造方法
也就是:
public A (Context context){
this(context,null);
}
public A (Context context ,AttributeSet attrs){
this(context,attrs,null);
}
.....
这些构造方法在系统定义中都是通过放射来实现的。
这样在第三个A中获取context其实就是第一个构造方法调用时传入的上下文。
(3)实例化控件和获得控件引用。
private View Button;
Button=getChildAt(1);//这里button最终继承View,写View会更方便,1代表第几个孩子,这里是按照在布局文件中定义的顺序规定的。
(4)加载完成是的回调:onFinishInflate()
当布局加载完成的时候就会调用这个方法,布局加载完成也就代表着控件可以实例化了,所以控件的实例化一般都是在这个方法中实例化的,
机上面的代码:Button=getChildAt(1);
获取得到这个控件的引用就可以为所欲为了。
(5)注意:自定义了一个View,现在还没有真正的使用,这时就可以更改(1)中定义的布局
比如定义的LinearLayout可以替换成我们自定义的View(继承LinearLayout),这个View本身就是一个LinearLayout。
替换就是将外面一层的LinearLayout关键字替换成这个类名A,一般会带着包名一起调用。
未完待续。。。。。。。
- 自定义View思想——标题栏自定义
- 自定义View之自定义标题栏
- 自定义View之自定义标题栏
- 自定义View 标题栏
- 自定义View--标题栏等
- android 自定义view——常用的标题栏
- [Android]自定义View标题栏TitleBar
- 自定义顶部标题栏的view
- 自定义View---header(标题栏)
- android 自定义view的使用(最佳demo——返回标题栏)
- Android——自定义view实现标题栏、梯形布局以及二维码扫描
- Android自定义View之TitleBar,通用标题栏
- 自定义View之简单顶部标题栏
- android 自定义 View 之标题栏(三)
- Android自定义view----顶部标题栏1
- Android自定义view----顶部标题栏2
- Android—自定义view
- 自定义View之复合控件(自定义标题栏)
- POI2014Criminals
- Android AsyncTask完全解析,带你从源码的角度彻底理解
- Eclipse百度地图开发只出现网格的问题解决方法归纳
- JavaScript之分割字符串
- 小白第一天:hello java
- 自定义View思想——标题栏自定义
- PHPExcel探索
- 感知机 java
- extern "C"的简单解析
- matlab预处理图像样本均衡
- 基于陆地移动距离(EMD)的彩色图像直方图距离计算
- JS页面跳转+JS在Iframe页面跳转、刷新
- The method getContextPath() from the type HttpServletRequest refers to the missing type
- 1171