我在啓動AsyncTask的ActionBarSherlock操作欄中有一個菜單選項。我試圖在後臺任務運行時讓圖標變成動畫。我有它的工作,除了當我點擊圖標時,圖標本身會向右「跳」幾個像素,這是非常明顯的。不完全確定是什麼原因導致發生。ActionBarSherlock動畫移動位置
這是我到目前爲止有:
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);
}
}
refresh_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"
/>
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"
/>
UPDATE:
愚弄AR因此,沒有運氣。它與動畫無關,因爲如果我禁用動畫,圖標仍會跳轉到右側。如果我註釋掉setActionView
,圖標不會跳轉,所以它與此有關。毫無頭緒,讓我瘋狂。
你應該看看[這裏] [1]。 [1]:http://stackoverflow.com/questions/9935875/changing-view-on-menu-item-in-action-bar – Trivial 2012-04-12 20:24:15
我已經創建的圖標,並解決了換檔問題。如果有人感興趣:http://stackoverflow.com/a/14360958/492624 – 2013-01-16 14:49:53