Android——自定义控件View详解

2020-10-14  本文已影响0人  多仔百事宅

为什么要自定义控件?

1.特定的显示风格
2.处理特有的用户交互

例:比如原本TextView不能滑动里面的文字,通过自定义控件实现

3.优化我们的布局

例:通过嵌套实现复杂的布局,但是绘制和测量的效率慢,通过自定义控件实现,提升效率

4.封装等

例:app内很多控件可以复用,比如首页底部的tab按钮,封装成自定义控件,方便后续使用

如何自定义控件?

1.自定义属性的声明与获取

提取自定义控件的属性,去声明,然后在构造方法里去获取。

2.测量onMeasure

测量自身需要多大的范围,
两个数字决定,一个测量的模式,一个测量的值
测量的模式分三种:

3.布局onLayout(ViewGroup)

单纯的View不需要考虑这个,
ViewGroup需要复写这个方法

4.绘制onDrow
5.onTouchEvent

如果有交互的地方,需要在这里进行处理

6.onInterceptTouchEvent(ViewGroup)

事件转发过程中,事件是由交给子控件处理的,但是转发的过程中,父控件有权去拦截子控件的事件,就是通过这个方法,如果返回时true了,那就表明事件被拦截了,事件要交给ViewGroup自己去处理

上一篇下一篇

猜你喜欢

热点阅读