开发者社区> 问答> 正文

android 自定义view的理解:报错

最近,一直在尝试在自定义view方面有所突破,也尝试分析了相关源码,分析到后来,还是云里雾里,大脑中没有什么印象。
在自定义的时候,往往需要进行这3步

1.测量——onMeasure():决定View的大小
2.布局——onLayout():决定View在ViewGroup中的位置
3.绘制——onDraw():如何绘制这个View。
在网上搜索了下,大家基本上都是给一通源码,然后进行分析。
我想问下,如果自定义view的时候,在什么情况下,需要覆写onMasure()?如果覆写这个方法的时候,我们一般需要考虑哪些因素?比如边距,view自身的宽高,等等
在什么情况下需要onLayout()?
我也看了一些自定义的view,有的也没有覆写这2个方法,也就是他直接采用了系统控件本来固有的方法了

展开
收起
kun坤 2020-06-09 11:24:17 598 0
1 条回答
写回答
取消 提交回答
  • .布局——onLayout():决定View在ViewGroup中的位置
    这个错啦。onLayout是给容器类用的。由容器类在这个方法中决定控件实际的大小和摆放位置。对于view自身太大的关系。除非写的是容器类,并且需要自己控制摆放位置和大小,那么才需要重写。
    如果需要控制控件的宽高,那么重写onMasure()。最终super.onMeasure(widthMeasureSpec, heightMeasureSpec);设置的值将变成控件的宽高。

    2020-06-09 11:24:25
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
58同城Android客户端Walle框架演进与实践之路 立即下载
Android组件化实现 立即下载
蚂蚁聚宝Android秒级编译——Freeline 立即下载