自定义View的分类:
- 继承View重写onDraw方法
- 继承ViewGroup派生出特殊的layout
- 继承特定的View(比如TextView)
- 继承特定的ViewGroup(比如LinearLayout)
自定义View需要注意的事项
- 让View支持Wrap_content
如果不在onMeasure中支持wrape_content,那么在布局中使用wrape_content效果等同于match_content
- 如果有必要让view支持padding
直接继承 view的控件如果不再draw方法里处理padding,那么padding属性将不起作用
- 尽量不要在view中使用handler,没有必要
view本身提供了post系列方法,完全可以代替handler,除非很明确需要handler来发送消息
- view中如果有线程或者动画,需要及时停止
- view带有滑动嵌套情形时,需要处理好滑动冲突