popwindow 动画取消奔溃报错java.lang.NullPointerException ViewRootImpl.drawAccessibilityFocusedDrawable
来源:互联网 发布:淘宝个人主页标签 编辑:程序博客网 时间:2024/06/05 17:21
现在APP中用到popwindow的地方很多,为了美化体验效果,很多动画的展示和取消都加上了动画效果;下面我就来说下我遇到的问题以及解决的方法;
cancelAnimation.addAnimation(new AlphaAnimation(1.0f, 0.0f));cancelAnimation.addAnimation(new ScaleAnimation(1, 1, 1, -1));cancelAnimation.setDuration(executeTime);cancelAnimation.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { mScrollView.setVisibility(View.VISIBLE); } @Override public void onAnimationEnd(Animation animation) { mScrollView.setVisibility(View.GONE); dismiss();
} @Override public void onAnimationRepeat(Animation animation) { }});
上面我是实现了动画延伸和渐变来取消popwindow,在动画结束回调dismiss();在Android 4.4以上是不会出现任何问题;但是在Android 4.1左右的版本就会在取消是奔溃:
java.lang.NullPointerException
#5367 09-20 03:38:07.99917478 ECrashReport at android.view.ViewRootImpl.drawAccessibilityFocusedDrawableIfNeeded(ViewRootImpl.java:2596)
#5368 09-20 03:38:07.99917478 ECrashReport at android.view.ViewRootImpl.onHardwarePostDraw(ViewRootImpl.java:2183)
#5369 09-20 03:38:07.99917478 ECrashReport at android.view.HardwareRenderer$GlRenderer.draw(HardwareRenderer.java:1233)
#5370 09-20 03:38:07.99917478 ECrashReport at android.view.ViewRootImpl.draw(ViewRootImpl.java:2420)
#5371 09-20 03:38:07.99917478 ECrashReport at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2274)
查看网上说的是popwindow调用dismiss()方法时报错;我理解为时在动画结束回调时Android4.1版本的是在子线程回调;
所以在调用dismiss();时我们加上handle试下让它在主线程执行;
cancelAnimation.addAnimation(new AlphaAnimation(1.0f, 0.0f));cancelAnimation.addAnimation(new ScaleAnimation(1, 1, 1, -1));cancelAnimation.setDuration(executeTime);cancelAnimation.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { mScrollView.setVisibility(View.VISIBLE); } @Override public void onAnimationEnd(Animation animation) { mScrollView.setVisibility(View.GONE); new Handler().post(new Runnable() { @Override public void run() { dismiss(); } }); } @Override public void onAnimationRepeat(Animation animation) { }});果真加了之后再Android 4.1的手机上就不在出现奔溃了
- popwindow 动画取消奔溃报错java.lang.NullPointerException ViewRootImpl.drawAccessibilityFocusedDrawable
- popwindow点击外部取消不了和popwindow弹出抖动动画
- java.lang.NullPointerException翻译
- java.lang.NullPointerException
- java.lang.NullPointerException
- Java.lang.NullPointerException
- java.lang.NullPointerException
- m2eclipse java.lang.NullPointerException
- java.lang.NullPointerException
- Android(java.lang.NullPointerException)
- java.lang.NullPointerException
- java.lang.NullPointerException
- java.lang.NullPointerException
- java.lang.NullPointerException
- 十一、java.lang.NullPointerException
- Java.lang.NullPointerException
- java.lang.NullPointerException
- java.lang.NullPointerException
- 常用排序之快排
- $.ajax()方法详解
- php 多个一维数组合拼成二维数组的方法
- scala File -demo1
- Spring Cloud 监控服务器下 IP/URL 不正确导致无法注册的解决方法
- popwindow 动画取消奔溃报错java.lang.NullPointerException ViewRootImpl.drawAccessibilityFocusedDrawable
- 事件捕获e || window.event
- ESP8266 PWM&GPIO
- Redis lesson14 Redis 中的消息订阅
- Java 多线程
- 考研数学
- oracle 常用语法(转载)
- java读取资源文件的五种方式 (转载)
- 微信分享突然失效的解决方法记录