2 kjmt123 Kjmt123 于 2016.03.18 12:08 提问

Android在动画结束的onAnimationEnd中移除视图报空指针

我在通过按钮删除一个视图,使用了淡出动画,在动画结束的监听中,删除视图removeView,报了空指针,但是用了handler.post后就好了,为什么呢?

3个回答

bdmh
bdmh   Ds   Rxr 2016.03.18 12:47

应该是异步操作中不能直接操作UI组件,要通过handler

Kjmt123
Kjmt123 但是在动画结束的监听onAnimationEnd(Animation animation)里面可以进行ui操作,比如设置textView的文字
2 年多之前 回复
lxk_1993
lxk_1993   Rxr 2016.03.18 19:16

debug 看一下控制空指针什么

luochoudan
luochoudan   Ds   Rxr 2016.03.18 23:18

要么贴一下源码,要么贴一下日志,这样只能瞎猜,不好不好。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
在onAnimationEnd方法中调用 viewgroup.removeview,报 nullpointerexception异常的解决方法
如题,在项目中遇到了问题,执行完动画后,在动画结束onAnimationEnd方法中移除了一个view,结果抛出nullpointerexception,寻找良久,才找到解决方案,在此记录,以便查阅。 本文来自:http://www.cxyclub.cn/n/16666/ 在做Android开发实现淡出效果后,移除界面上一个图片控件时,发现这样一个问题,在onAnimationEnd方法中调用
android 属性动画监听
android 属性动画结束监听 如果用的是AnimatorSet,那么只要其中一个没有结束都不会调用onAnimationEnd方法 自定义差值器如果return 0;那么表示不会改变 重复动画OOM,动画重复可以设置如下设置 alphaAnimtor.setRepeatCount(ValueAnimator.INFINITE); alphaAnimtor.setRe...
AnimatorSeth和AnimatorListener
使用AnimatorSet来设计执行多个动画 很多时候,你希望一个动画的执行依赖于另一个动画的开始或结束。Android系统允许你使用AnimatorSet来把多个动画捆绑在一起,这样你可以让多个动画同时执行,或者顺序执行,或者在指定的延时后执行。你也可以嵌套AnimatorSet。 下面的例子来自于Bouncing Balls(修改了更简单),它以下面的行为执行各个动画: 1、播放boun
Android动画onAnimationEnd会被调用两次
算是一个纪录片吧,也不知道为什么。当用动画listener时,log被打印了两次。 chooseAnimation.setAnimationListener(new AnimationListener() { @Override public void onAnimationStart(Animation animation) { Log.e("linc", "-
animation.setAnimationListener onAnimationEnd被调用两次更新
在listview点击事件中,很多时候需要点击后产生动画效果。在adapter里加入以下代码传入相关值就行。 现要实现点击item后item的消失动画。但是Log发现会删除两条UI数据一条原始数据。参考他人代码及看源码追踪如下 动画监听方法: private void removeListItem(View rowView, final int position) {
启动动画问题startAnimation
mAnimationView.postDelayed(new Runnable() { @Override public void run() { Animation animation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.ac
由动画Animator.end()引发的问题总结
最近在工作过程遇到过一个关于调用Animator.end()方法引发的Bug,下面让我来说说是怎么回事。 在开发过程中,由于一些业务或者需求功能的需要,我们经常需要在某些环节中同时或者连续播放多个动画,这是我们一般会new 一个AnimatorSet来做此类工作,比如常见的方式如下所示:AnimatorSet mSet = new AnimatorSet();ValueAnimator anima
[android小知识]clearAnimation的事件
在开发过程中可能会遇到动画提前关闭的操作,这个时候我们就会用户clearAnimation();这个方法。但是如果动画已经启动了,这个时候就会触发new Animation.AnimationListener()的onAnimationEnd的方法。 /** * 测试动画调用时机 */ mMoveTextOut = new Translat
进入应用动画闪屏, android5.0初始动画,不执行解决等方案总结
这个问题是这几天还在开发中遇到的问题,困扰了我几天终于改决了,现在记录下。               如果你的应用非常小有可能是遇不到这个问题的。               一.系统5.0以下解决方案:在oncreate方法中做一下线程延迟,大概几十毫秒就可以了。               二.系统5.0中的onCreate方法使用属性动画一点效果都没有(根本不会动),可以使用ha
属性动画设置addListener后onAnimationStart不执行
遇到个问题,当调用属性的动画的时候设置addListener后,想要在onAnimationStart执行时做些操作,但是发现却只执行了onAnimationEnd,这尼玛就操蛋了,具体原因还不清楚,但是给属性动画设置一个延迟值就可以了* objectAnimator.setStartDelay(time);*,当time不为0的任意值时回调可以正常执行,这里先记一下,以后慢慢探索