在我的 FragmentActivity 中,我创建了一个 MenuItem,当用户单击它时,它必须在 actionBar 中执行顺时针动画,并在 AsyncTask 完成时停止。这是我开始和停止刷新时使用的代码:
public void completeRefresh(MenuItem menuItem) {
if(menuItem!=null){
if(menuItem.getActionView()!=null){
menuItem.getActionView().clearAnimation();
menuItem.setActionView(null);
}
}
}
public void refresh(MenuItem menuItem) {
/* Attach a rotating ImageView to the refresh item as an ActionView */
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
ImageView iv = (ImageView) inflater.inflate(R.layout.refresh_action_view, null);
Animation rotation = AnimationUtils.loadAnimation(this, R.anim.clockwise_refresh);
rotation.setRepeatCount(Animation.INFINITE);
iv.startAnimation(rotation);
menuItem.setActionView(iv);
}
这很好用,但是当我切换片段时出现问题。Activity 包含在一个包含两个片段的 ViewPager 中。当我在带有动画的 ActionView 正在进行时切换片段时,在新的片段中,我看到两个顺时针菜单项,一个在另一个动画上。而且动画永远不会结束。这是问题的截图。我怎样才能避免这种情况?