自定义了一个View,作为ListView的Item显示。
当我滑动ListView时,自定义View中的onDraw重复执行。点击Item也重复执行onDraw。
在自定义View中我只是画了一个图片,我不需要其重复执行,怎么让它只执行一次。
补充:
除了重写了构造函数和onDraw方法外,没有重写任何方法。
在onDraw中也是指调用canvas.drawBitmap方法外,没有调用任何方法。我只是画一张图片,不需要重复画,
但是目前ondraw方法重复执行!!
怎么解决?求救!!!!!

解决方案 »

  1.   

    这跟自定义view的onDraw无关吧?
    你做的ListView刷新的时候,有利用上缓存吗?就是public View getView(int position, View convertView, ViewGroup parent)中的covertView
      

  2.   

    onDraw是供系统回调的函数,当界面发生更新时回调,是不能也不允许阻止其执行的,按照lz的需求,可以定义一个状态位,在onDraw中控制你画图操作执行的次数
      

  3.   


    首先ListView中有缓存,你可以优先利用缓存来刷。如果ListItem超出缓存区域后再回来,此convertView会变成NULL,系统会调用item的view来画,此时就应该调用到你自定义的view的onDraw了。这个时候你不可能禁止它调用。否则难道你那条item变成空白的?另外我不明白你的重复执行是什么意思?能不能上代码。
      

  4.   

    你可以调用invalidate()方法,这个方法是调用onDraw()方法的。