安卓自定义view中invalidate后并没有调用ondraw(),是怎么回事啊?
关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
已采纳
安卓自定义view中invalidate后并没有调用ondraw(),是怎么回事啊?
收起
- 写回答
- 好问题 0 提建议
- 关注问题
微信扫一扫点击复制链接分享
- 邀请回答
- 编辑 收藏 删除 结题
- 收藏 举报
1条回答 默认 最新
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
sinat_26761191 2016-12-09 06:33关注你把系统那个方法给重写了吧,那个super() 不能删除的,这个会调用系统的方法。
本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决评论 打赏无用 3举报
微信扫一扫点击复制链接分享
评论按下Enter换行,Ctrl+Enter发表内容
报告相同问题?
提交
- 2024-06-23 00:21字节卷动的博客 首先我们分析一下的执行流程,源码是如何从invalidate调用到onDraw()的。由于这部分代码相对较为复杂,那么请大家参考下面的时序图。
- 2019-05-07 17:48Keung丶的博客 onDraw调用需要两个条件, 1,View背景不透明 2,View高宽不为0
- 2021-01-15 09:13Granger_g的博客 问题描述:今天自定义了一个view,放在recyclerview中显示,正常每个item显示的不一样才对,因为每个不同的item我都对自定义view样式进行了修改,结果运行时,每个item显示的样式都是一样的。而且是按最后一次设置...
- 2018-09-19 11:32沐恩_的博客 如果在调用invalide方法没有刷新view的时候,可以采用刷新父布局的方式:((View)view.getParnet()).invalidate(); 或者用另外一个方法: view.invalidate(); view.forceLayout(); view.requestLayout(); 这样会...
- 2022-03-03 19:06tinyvampirepudge的博客 View#invalidate后,一定会调用当前child的onDraw。这个方法跟 requestLayout 的区别在于,它不一定会触发 View 的 measure 和 layout 的操作,多数情况下只会执行 draw 操作。 我们从View#invalidate开始,追一下...
- 2023-02-07 09:20ajaccio8899的博客 Android自定义的ImageView在调用invalidate()时不触发onDraw()
- weixin_39746552的博客 b1.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if (w> = 600) { MyView.this.setBackgroundColor(Color.GREEN); //b1.setBackgroundColor(Color.RED); } else { MyView....
- 2020-08-27 09:23滴水未满的博客 我遇到的问题原因在item布局 宽高由match_parent改成固定数值之后能显示了 最终item布局 实际显示结果
- 2017-08-24 14:52Sundy_Xu的博客 自定义View执行invalidate()方法,为什么有时候不会回调onDraw()自定义一个view时,重写onDraw。调用view.invalidate(),会触发onDraw和computeScroll()。前提是该view被附加在当前窗口. view.postInvalidate(); //是...
- 2020-07-31 16:33路过独木桥!!的博客 invalidate()的调用是把之前的旧的view从主UI线程队列中pop掉。 对于屏幕刷新有以下集中情况可以考虑: 1.不使用多线程和双缓冲 这种情况最简单了,一般只是希望在View发生改变时对UI进行重绘。你只需在Activity中...
- 2019-02-18 10:55forwardyzk的博客 自定义View,不执行onDraw方法描述不执行原因自定义View例如解决办法办法1办法2 描述 在自定义View的时候,发现不执行onDraw方法,在网上查了方法, 1.在构造方法里增加setWillNotDraw(false)方法,发现不起作用. 2....
- 2017-05-18 12:04在Android开发中,自定义View是一项非常重要的技能,它允许开发者根据自己的需求创建独特的用户界面。本示例探讨的是如何创建一个自定义的View,该View是一个跟随手指移动的正方形,其移动范围限定在屏幕内。这个...
- 2019-11-07 16:55恬静释然的博客 View有两个很重要的方法: invalidate和requestLayout,常用于View重绘和更新。 Invalidate: To farce a view to draw,call invalidate().——摘自View类源码 从上面这句话看出,invalidate方法会执行draw过程,...
- 2021-02-25 16:15笑叹人生@gaoxiang的博客 场景:调用自定义ViewGroup(可能继承的是ViewGroup/LinearLayout等等)的invalidate时,onDraw方法不执行 原因:考虑一下是否没有设置背景,如果没有设置背景,那么ViewGroup初始化的时候调用setWillNotDraw(false);...
- 2021-05-28 00:50HonoYoku的博客 在View.onDraw方法里调用View.invalidate和在ValueAnimator.AnimatorUpdateListener中调用View.invalidate,有区别吗?了解ValueAnimator的同学会知道,它播放动画的实现原理并不是直接使用线程来不断计算并回调...
- 2016-10-31 09:09本人很懒zzz的博客 在网上看到很多人都在问自定义View中,使用invalidate()方法并不会不调用onDraw(),其实很容易忽略的一个原因是:你调用invalidate()的对象是哪个?你使用你要刷新的那个View对象调用的invalidate()吗?我曾经就遇到...
- 2015-12-15 13:25qq_28497681的博客 写过自定义控件的大家都知道invalidate方法是Android请求重绘的方法。所以会调用到我们自己重写的onDraw方法。 但是在我最近写的一个控件时却没有调用他的onDraw方法。我所重写的控件需求是在触发事件后控件可以...
- 2021-06-05 06:56weixin_39781326的博客 我有一个小应用程序,它使用自定义的LinearLayout,称为LinearlayoutOutlined.我想在其中绘制不同大小和彩色的盒子.它还有两个指示时间间隔的文本标签.在进行一些用户操作后,必须重新绘制布局.因此我按原样刷新布局...
- 2018-05-10 21:11@王永超的博客 这是调用View本身的刷新方法 ,看方法名的话是在主线程进行刷新,这本来是挺方便的一件事,但也就是这个方法,使得onDraw 方法走了两次。 this.invalidate(); //修改之后的代码 当然了还要很多个原因,这只是...
- 没有解决我的问题, 去提问