我正嘗試在菜單的可見性模式之間進行動畫。 默認情況下,所有菜單項都是隱藏的,但當用戶點擊編輯按鈕時,我想用動畫顯示所有項目。可見性模式之間的動畫對於菜單項
我已經實現了改變菜單項的可見性的第一部分,並且工作正常,但動畫部分使應用程序崩潰。
這是我的代碼。
當用戶點擊編輯這稱爲。默認edit_mode爲false。
if (!edit_mode) {
edit_mode = true;
supportInvalidateOptionsMenu();
}
這是菜單代碼。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_add__custom, menu);
return true;
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
MenuItem photo = menu.findItem(R.id.photo);
photo.setVisible(edit_mode);
if (edit_mode)
photo.getActionView().animate().alpha(1.0f);
MenuItem date = menu.findItem(R.id.date);
date.setVisible(edit_mode);
if (edit_mode)
date.getActionView().animate().alpha(1.0f);
MenuItem done = menu.findItem(R.id.done);
done.setVisible(edit_mode);
if (edit_mode)
done.getActionView().animate().alpha(1.0f);
return edit_mode;
}
menu.xml文件
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<item
android:id="@+id/date"
android:icon="@drawable/ic_event_white_24dp"
android:orderInCategory="200"
android:title="Date"
app:showAsAction="ifRoom" />
<item
android:id="@+id/done"
android:icon="@drawable/ic_done_white_24dp"
android:orderInCategory="300"
android:title="Done"
app:showAsAction="ifRoom" />
<item
android:id="@+id/photo"
android:icon="@drawable/ic_photo_white_24dp"
android:orderInCategory="100"
android:title="Done"
app:showAsAction="ifRoom" />
我已經更新了問題,以顯示menu.xml文件。每個菜單項是一個圖標,我隱藏和顯示圖標,所以我仍然需要使用textview,或者我應該使用imageview,如果是的我需要改變嗎? –
你可以使用圖像視圖,你可以infalte和使用layoutInflator服務佈局。看到我上面的答案,這部分也解釋了。嘗試實施它 –