自定义view(一)自定义textview
来源:互联网 发布:ios10 蜂窝移动数据 编辑:程序博客网 时间:2024/06/08 16:32
http://www.jianshu.com/p/2b03535fe75f
http://www.cnblogs.com/cfas/p/6427182.html
自定义textivew实现中英文换行对其
在这个自定义view中使用到了requestLayout();
View有两个很重要的方法:invalidate和requestLayout,常用于View重绘和更新。
Invalidate:
To farce a view to draw,call invalidate().——摘自View类源码
从上面这句话看出,invalidate方法会执行draw过程,重绘View树。
当View的appearance发生改变,比如状态改变(enable,focus),背景改变,隐显改变等,这些都属于appearance范畴,都会引起invalidate操作。
所以当我们改变了View的appearance,需要更新界面显示,就可以直接调用invalidate方法。
View(非容器类)调用invalidate方法只会重绘自身,ViewGroup调用则会重绘整个View树。
RequestLayout:
To initiate a layout, call requestLayout(). This method is typically called by a view on itself when it believes that it can no longer fit within its current bounds.——摘自View源码
从上面这句话看出,当View的边界,也可以理解为View的宽高,发生了变化,不再适合现在的区域,可以调用requestLayout方法重新对View布局。
View执行requestLayout方法,会向上递归到顶级父View中,再执行这个顶级父View的requestLayout,所以其他View的onMeasure,onLayout也可能会被调用。
总结:
View绘制分三个步骤,顺序是:onMeasure,onLayout,onDraw。经代码亲测,log输出显示:调用invalidate方法只会执行onDraw方法;调用requestLayout方法只会执行onMeasure方法和onLayout方法,并不会执行onDraw方法。
所以当我们进行View更新时,若仅View的显示内容发生改变且新显示内容不影响View的大小、位置,则只需调用invalidate方法;若View宽高、位置发生改变且显示内容不变,只需调用requestLayout方法;若两者均发生改变,则需调用两者,按照View的绘制流程,推荐先调用requestLayout方法再调用invalidate方法。
- 自定义view(一)自定义textview
- 自定义View(一) 仿TextView
- Android自定义View(一、初体验自定义TextView)
- Android自定义View(一、初体验自定义TextView)
- Android自定义View(一、初体验自定义TextView)
- Android自定义View(一、初体验自定义TextView)
- android自定义View(一)之下划线TextView
- Android 自定义View (TextView)
- 自定义view-textview
- 自定义View textview
- 自定义View(一) 初识自定义view
- 自定义View(一)
- 自定义view(一)
- 自定义View(一)
- 自定义View(一)
- 自定义View(一)
- 自定义View(一)
- 自定义view(一)
- 而微软微软
- OpenCV笔记大集锦
- bzoj 4800: [Ceoi2015]Ice Hockey World Championship meet in the middle
- 根据题意降低时间复杂度
- 大数据处理之荷兰三剑客
- 自定义view(一)自定义textview
- Another app is currently holding the yum lock; waiting for it to exit...
- 为什么要重写View的onMeasure(int widthMeasureSpec, int heightMeasureSpec)方法
- 在linux下用c语言写贪吃蛇游戏
- Lucene入门
- 剑指offer-14.链表中倒数第k个节点
- spring(八)---spring事务处理
- Same Tree
- 103. Binary Tree Zigzag Level Order Traversal