9

Honeycomb の ActionBarHelper に似た方法でアクション ビューを使用して ActionBar の MenuItem をアニメーション化し、回転式の更新ボタンを表示しようとしました。しかし、私には2つの問題があります:

  1. アクション ビューを表示すると、アイテムの幅が MenuItem よりも小さくなります (スクリーンショットのパート 1 と 2 を参照)。
  2. アニメーションを停止し、setActionView(null) を介してデフォルトの MenuItem 状態に戻りたい場合、アクション ビューが MenuItem 内に表示されたままになります (スクリーンショットのパート 3)。

MenuItem のさまざまな手順 (スクリーンショット)

ActionView レイアウト (R.layout.menu_item_refresh) は次のとおりです。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/ic_menu_refresh" />

</LinearLayout>

onOptionsItemSelected メソッドのコードは次のとおりです。

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch(item.getItemId()){               
        default:
            return super.onOptionsItemSelected(item);

        case R.id.Menu_Feed_Refresh:
            mAnimatedItem = item;
            item.setActionView(R.layout.menu_item_refresh);
            item.startAnimation(mAnimation);

            load();
            return true;
    }
}

読み込みが完了したら、ハンドラ mAnimatedItem.setActionView(null) を呼び出します

4

2 に答える 2

0

コードを正しく理解していない場合は、MenuItemにアニメーションを適用します。によってActionViewを削除しますsetActionView(null)が、menuItemはアニメートします。

ActionViewから画像を取得し、それにアニメーションを適用する必要があります。

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()){               
    default:
        return super.onOptionsItemSelected(item);

    case R.id.Menu_Feed_Refresh:
        mAnimatedItem = item;
        item.setActionView(R.layout.menu_item_refresh);
        ImageView iv = (ImageView) item.getActionView().findViewById(R.id.refresh_image_id);
        iv.startAnimation(mAnimation);
        load();
        return true;
    }
}
于 2012-05-14T16:46:51.787 に答える
0

mAnimation.clearAnimation()やめたいときは電話。

于 2013-07-29T17:46:58.153 に答える