2 clcurie 11 clcurie_11 于 2013.03.19 11:11 提问

从 AdapterView 中创建数组

能否从onItemSelected()中获取views数组?因为我需要给当前的视图设置动画,并且清除其它视图的动画,能这样做吗?

 @Override
        public void onItemSelected(AdapterView<?> adV, View view, int currentIndex, long l) 
        {
                view.startAnimation(AnimationUtils.loadAnimation(currentContext, R.anim.scale_anim));
                adV[currentIndex + 1].clearAnimation();
                adV[currentIndex - 1].clearAnimation();

        }

2个回答

LiDaming_and
LiDaming_and   2013.03.19 17:19
已采纳

你应该遍历 AdapterView 的子类

int count = adV.getChildCount();
for (int i = 0; i < count; i++) {
    View v = adV.getChildAt(i);
    view.clearAnimation();
}

当然你要检查 view 是否是当前的。

xialonghua
xialonghua   2013.03.19 17:15

你这样应该是有问题的。因为listview的itemview是重用的。
最好是把数据的position记录下来,然后notifychange让adapter的getView被调用,
然后再在getView里根据这个变量去判断是进行动画还是停止动画

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!