在我的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 动画进行中切换片段时,在新片段中,我会看到两个顺时针旋转的菜单项,一个向上动画,另一个向下。并且动画永远不会完成。
以下是该问题的截图。我该如何避免这种情况?