【急】listview点击item动画效果 本帖最后由 zhuyakk 于 2013-04-02 10:49:05 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 onclick只会执行一次 你点击哪个项就传入相应的参数, 第一段程序没看出什么毛病,第二段程序有点乱 clickflag=1; listView.clearAnimation(); listView.getChildAt(currIndex).startAnimation(tbig); if(clickflag==1){ listView.getChildAt(recordpreviousindex).startAnimation(tsmall); } 像这样的代码 质量太差了 反正看你这段代码必定有两次的startAnimation,自己再根据你们的需求好好整理一下逻辑 已经搞定。在 listView.getChildAt(recordpreviousindex).startAnimation(tsmall);前加个for循环清除每个item的动画。clickflag是逻辑混乱产物 = =onclick中的updatemusiclist()是这样的,想问下你notifyDataSetInvalidated()的刷新步骤,debug看是先执行完start再刷新。因为点击时调用了这个函数,按键盘上下键也调用了,但是刷新顺序不同,点击时先刷新再动画,而键盘是先动画再刷新求解 public void updatemusiclist(){ temp.clear(); temp.addAll(list); list.clear(); for(int i=0;i<temp.size();i++){ tempe=i+orienIndex; if(tempe>=list.size()){ tempe=tempe%temp.size(); } else if(tempe<0){ tempe=temp.size()+tempe; } if(tempe==FIXMUSICINDEX) recordpreviousindex=i; if(tempe<temp.size()) list.add(temp.get(tempe)); }//end for currIndex=FIXMUSICINDEX; listView.requestFocus(); listView.setSelection(FIXMUSICINDEX); //*************************************** ma.notifyDataSetInvalidated(); //*************************************** start(); } http://blog.csdn.net/bailyzheng/article/details/8536806一般情况是notifyDataSetChanged,我不知道你是属于数据源失效还是更改,请参考以上链接!键盘应该是直接出发刷新然后在getView里面出发动画,但是你的onclick也手动出发刷新了应该是一样的,不过onclick中你又手动去触发动画了,这点可能会有影响.其实没必要这么复杂,简化一下逻辑吧 我用canavas 绘制的圆角矩形 圆角处怎么是黑色啊 怎么改成透明 这与画笔有关系么 问个关于webkit调试的问题。 帮我看看我的wifi连接代码那里出错了,急!!!!!!!! 求教有关ExpandableListView的2个问题 比较BMP和Android的RPC机制 new出来的ImageView为何没有显示出来? 通过路径产生图片 关于使用UDP在两个模拟器上进行消息传输 调用Camera照相,图片太大的问题 Android菜鸟求救。。。 学习android记账程序发现看不懂代码啊,小女纸跪求求高手指点 关于findViewById返回空指针的错误
listView.clearAnimation();
listView.getChildAt(currIndex).startAnimation(tbig);
if(clickflag==1){
listView.getChildAt(recordpreviousindex).startAnimation(tsmall);
}
像这样的代码 质量太差了
反正看你这段代码必定有两次的startAnimation,自己再根据你们的需求好好整理一下逻辑
因为点击时调用了这个函数,按键盘上下键也调用了,但是刷新顺序不同,点击时先刷新再动画,而键盘是先动画再刷新求解
public void updatemusiclist(){
temp.clear();
temp.addAll(list);
list.clear();
for(int i=0;i<temp.size();i++){
tempe=i+orienIndex;
if(tempe>=list.size()){
tempe=tempe%temp.size();
}
else if(tempe<0){
tempe=temp.size()+tempe;
}
if(tempe==FIXMUSICINDEX)
recordpreviousindex=i;
if(tempe<temp.size())
list.add(temp.get(tempe));
}//end for
currIndex=FIXMUSICINDEX;
listView.requestFocus();
listView.setSelection(FIXMUSICINDEX);
//***************************************
ma.notifyDataSetInvalidated();
//***************************************
start();
}
一般情况是notifyDataSetChanged,我不知道你是属于数据源失效还是更改,请参考以上链接!键盘应该是直接出发刷新然后在getView里面出发动画,但是你的onclick也手动出发刷新了应该是一样的,
不过onclick中你又手动去触发动画了,这点可能会有影响.
其实没必要这么复杂,简化一下逻辑吧