Android Spinner视图:setSelection(int position)和setSelection(int position,boolean animate)之间的区别?

时间:2011-05-18 13:00:19

标签: java android spinner stack-overflow

我阅读了文档,但我不太明白......参数“animate”是什么?

我唯一注意到的事情:

public void onItemSelected(AdapterView<?> parent, View view, int position, long id)
{
    if (savedPosition != -1)
    {
        ((Spinner) parent).setSelection(savedPosition );
        savedPosition  = -1;
        return;
    }

   //...
}

...使用“setSelection”工作正常,但使用setSelection(savedPosition,true)进入无限循环/ StackOverflowError;

我真的很好奇为什么会这样呢?

亲切的问候, 水母

1 个答案:

答案 0 :(得分:1)

那应该是顾名思义。从当前位置动画到所需位置。当你只使用setSelection时,当你试图确保用户看到更改时(更改的通知类型)加上它看起来更平滑时,更改更合适。至少这就是我使用它的原因。至于动画,我从来没有遇到任何问题。

为什么使用savedPosition代替位置进行选择?也许这就是导致循环的原因。我的建议是尝试用位置做它,看它是否失败。你的代码有点奇怪..

你们评论建议你出于某种原因再次调用该方法,因为我相信动画的setSelection会在实际设置选择时执行此操作。