安卓 自定义listview+动画 下拉列表出现空指针 求解决

错误是: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.View.setScaleX(float)' on a null object reference
希望遇到过同样情况的大神给予指点

下面贴出我的代码

package net.bmvod.jukeboxv2;

import android.animation.ValueAnimator;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.view.View;
import android.widget.AbsListView;
import android.widget.AdapterView;
import android.widget.ListView;

public class LvListView extends ListView implements AdapterView.OnItemClickListener {
private boolean flag = true;
private int lastPosition = 0 ;

public LvListView(Context context) {
this(context, null);
}

public LvListView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}

public LvListView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
setOnItemClickListener(this);
}

public void startScaleAnimator(final View view, float start, float end) {
final ValueAnimator animator = ValueAnimator.ofFloat(start, end);
animator.setDuration(300);
animator.start();
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
float value = (Float) animation.getAnimatedValue();
view.setScaleX(value);
view.setScaleY(0.4f + (0.6f * value));
}
});
}

@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (flag == true) {
startScaleAnimator(view, 0.6f, 1.0f);
lastPosition = position;
flag = false;
} else {
if(lastPosition == position){
//startScaleAnimator(parent.getChildAt(lastPosition), 1.0f, 0.6f);
lastPosition = position;
}else{
startScaleAnimator(view, 0.6f, 1.0f);
startScaleAnimator(parent.getChildAt(lastPosition), 1.0f, 0.6f);
lastPosition = position;
}
}

}

}

自定义的listview和adapter实现item的动画效果 然后刚加载出来的时候是没有问题的 但是如果列表下拉列表再点击item程序就会崩溃 并报错在 animator.addUpdateListener里面 view.setScaleX(value);这一行有错误,不清楚什么原因,求大神帮忙指点一下

2个回答

view.
setScaleX(
value);再看哪个NullP

sld22525482
「已注销」 你的意思是注销看一下?就是动画这里错了,应该是listviewitem一滑动有刷新 动画就不知道给谁执行了吧。。。不知道怎么解决
大约 4 年之前 回复

listview刷新有几个状态,正在刷新就把列表的点击事件屏蔽掉

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐