「已注销」 2016-07-26 03:23 采纳率: 0%
浏览 1002

安卓 自定义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);这一行有错误,不清楚什么原因,求大神帮忙指点一下

  • 写回答

1条回答

  • 东风玖哥 2016-07-26 04:58
    关注

    没有数据就别硬加载更多了

    评论

报告相同问题?

悬赏问题

  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 用matlab 设计一个不动点迭代法求解非线性方程组的代码
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug