关于自定义View初始化时不执行onDraw方法的笔记

原创 2015年07月07日 14:34:09

如果自定义View,而不是自定义容器时,请检查自定义View的宽高是否出现0的情况。

如果自定义容器,请移步ViewGroup为什么不会调用onDraw


当我直接继承View实现自定义View时,遇到一个问题,莫名其妙的初始化后竟然不执行onDraw方法,我天,执行完onMeasure,在ondraw里打印log竟然不执行,我当时猜想,是不是我的控件宽高出现了0的情况,然后在自定义View打印了一下宽高,均不为0(原因确实是宽高为0了)。

然后百度“自定义view不执行onDraw方法”,找到的大多数都是描述“自定义viewgroup时不执行onDraw方法”--》例如这篇博文写的就很好“ViewGroup为什么不会调用onDraw”。

无奈翻墙谷歌,最后在这儿找到了启发:



我在使用控件的时候setLayoutParams的时候,传入了0值。


版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

关于onDraw()方法不被执行的解决方法(setWillNotDraw)

一.引言: 想必大家以前也遇到过这个问题:出于项目的需要,我们有时需要新建一个直接或者间接继承View的类,以便复写View提供的onDraw()方法,但有时我们反而得不到我们想要的结果,今天就说一...
  • look85
  • look85
  • 2012-12-27 11:29
  • 18347

Android 自定义View (三) 圆环交替 等待效果

一个朋友今天有这么个需求(下图),我觉得那自定义View来做还是很适合的,就做了下,顺便和大家分享下,对于自定义View多练没坏处么。如果你看了前两篇,那么这篇一定so easy 。 效果就这样,...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

Android 自定义View (四) 视频音量调控

今天没事逛eoe,看见有人求助要做一个下面的效果,我看下面一哥们说要用12张图片,这尼玛逆天的麻烦,仔细看了一下感觉自定义控件木有问题,就花点时间写了一个。 好了,进入正题,继续我们的自定义Vie...

打造你的开发神器——介绍Android Studio上的几个插件

这个月因为各种事情在忙,包括赶项目,回老家,还有准备旅游的事,所以应该写不了四篇博客了。今天介绍一下关于Android Studio 的几个好用的插件,都是我在用的,或能提高码代码效率,或者让你心情愉...

Android View onDraw 不执行

在ViewGroup中ondraw总是不执行,或者说不被调用.原因:if a ViewGroup background is null ,the funtion "ondraw" will not b...

自定义View onDraw方法不被执行

一.引言: 想必大家以前也遇到過這個問題:出於項目的需要,我們有時需要 新建一個直接或者間接繼承View的類,以便複寫View提供的onDraw()方法,但有時我們反而得不到我們想要的結果,今天就說...

处理onDraw()方法不被执行的解决方法:

处理onDraw()方法不被执行的解决方法: setWillNotDraw(false); 官方文档的解释: If this view doesn't do any drawing on it...

为什么自定义ViewGroup ondraw方法不会被调用

viewgroup的绘制严格来说是在dispatchDraw中完成,作为一个容器,绘制自己的孩子该通过dispatchDraw(canvas)实现。但是你非要在ondraw中也不会出错。 但自定...

自定义View(3)——onLayout()、onDraw()方法的简单使用

之前对构造方法、测量方法的简单使用的了解,下面对onMeasure()之后的onLayout()、onDraw()方法进行简单说明。     onLayout()布局方法一般是在自定义布局控件继承自V...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)