【急】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中你又手动去触发动画了,这点可能会有影响.其实没必要这么复杂,简化一下逻辑吧 android网络错误 android 锁屏API 加入多语言问题 有用过libcolorconvert.so这个文件吗? android工程如何打开office文档和pdf 请问下像内置mail应用那样的ListView带CheckBox的效果怎么做? 大家推荐下学习安卓应用开发的书或教程吧 关于获得手机里的本地音乐 求大神帮忙!!如何通过button的click事件添加listview的一行信息!! android导入项目后无法新建activity 学习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中你又手动去触发动画了,这点可能会有影响.
其实没必要这么复杂,简化一下逻辑吧