码农-虚无吞炎
2017-09-20 05:11
采纳率: 10%
浏览 1.3k

关于android自定义View的requestLauout和invalidate我一直有个疑问

查询百度,会有下面的解释
requestLayout:会调用onMeasure onLayout
invalidate:会调用onDraw

问题1:为什么我自定义的View,我在调用requestLayout时依然会调用onDraw这个方法
问题2:为什么我调用invalidate(rect)进行局部刷新时会重新走一遍onDraw的所有方法,而不是只走对应的局部方法,这样的话和invalidate就没有区别了啊?

问题3:在自定义ViewGroup时,在init时new出一个View并add上去,调用ViewGroup的requestLayout方法后,发现没有调用这个View的onMeasure方法,或者调用ViewGroup的invalidate后,发现没有调用子View的onDraw方法。

这些问题都是为什么?请相关大牛帮忙细心解释。

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

3条回答 默认 最新

相关推荐 更多相似问题