我的 ActionBarSherlock Actionbar 中有一个启动 AsyncTask 的菜单选项。我试图让图标在后台任务运行时进行动画处理。我让它工作,除了当我点击图标时,图标本身会向右“跳”几个像素,而且非常明显。不确定是什么导致了这种情况发生。
这是我目前所拥有的:
private MenuItem refreshItem;
private void DoRefresh()
{
final LayoutInflater inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final ImageView ivRefresh = (ImageView)inflater.inflate(R.layout.refresh_view, null);
final Animation rotation = AnimationUtils.loadAnimation(activity, R.anim.refresh);
ImageView ivRefresh.startAnimation(rotation);
refreshItem.setActionView(ivRefresh);
//AsyncTask is kicked off here
}
@Override
public boolean onOptionsItemSelected(final MenuItem item)
{
if (item.getItemId() == R.id.refresh) {
refreshItem = item;
this.DoRefresh();
return true;
} else {
return super.onOptionsItemSelected(item);
}
}
刷新 View .xml
<?xml version="1.0" encoding="utf-8"?>
<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:src="@drawable/refresh"
/>
刷新.xml
<rotate
xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="0"
android:toDegrees="360"
android:pivotX="50%"
android:pivotY="50%"
android:repeatCount="infinite"
android:interpolator="@android:anim/linear_interpolator"
android:duration="1100"
/>
更新:
一直在胡闹,没有运气。它与动画无关,因为如果我禁用动画,图标仍然会跳到右边。如果我注释掉setActionView
,图标不会跳动,所以它与此有关。毫 headless 绪,快把我逼疯了。
最佳答案
我不知道这是否会产生任何影响,但如果您尝试使用 pivot
值,您可能会解决这个问题。也许只在一个轴上旋转?
关于android - ActionBarSherlock 动画移动位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10056083/