मैं समझने की कोशिश कर रहा हूं कि मेन्यू आइकन एनीमेशन नए नेविगेशनव्यू में काम करना चाहिए, वैसे ही एक्शन आइटम एनीमेशन काम करता है या उस मामले के लिए कोई अन्य दृश्य, जिसका उपयोग किसी ऐप लेआउट पर किया जाता है।एंड्रॉइड नेविगेशन व्यू मेनूइटम आइकन एनीमेशन
नीचे दिया गया कोड मेरे लिए काम नहीं करता है। मैं नए समर्थन लाइब्रेरी के लिए Android द्वारा जारी किए गए कोड नमूने का परीक्षण करने के लिए उपयोग कर रहा हूं। वही एनीमेशन कोड टूलबार पर अच्छी तरह से काम करता है।
मुझे लगता है कि मैं कुछ याद कर रहा हूँ ...
धन्यवाद आगे: इसके अलावा एनीमेशन के लिए पुराने API का उपयोग करने की कोशिश की (Animated Icon for ActionItem कि लिंक का अनुसरण किया)।
कोड:
Xml:
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/drawer_layout"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:fitsSystemWindows="true"
android:background="@color/lightPrimaryColor">
<include layout="@layout/include_list_viewpager"/>
<android.support.design.widget.NavigationView
android:id="@+id/nav_view"
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:layout_gravity="start"
android:fitsSystemWindows="true"
android:background="@color/lightPrimaryColor"
app:headerLayout="@layout/nav_header"
app:theme="@style/menu_item_style"
app:menu="@menu/drawer_view"/>
</android.support.v4.widget.DrawerLayout>
drawer_view:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:class="http://schemas.android.com/tools"
class:actionViewClass="android.widget.ProgressBar">
<group android:checkableBehavior="single"
android:id="@+id/drawer_menu">
<!-- <item
android:id="@+id/nav_my_lists"
android:title="@string/title_shopping_lists"
android:icon="@drawable/ic_event"
app:showAsAction="always"/> -->
<item
android:id="@+id/nav_examp_lists"
android:icon="@drawable/refresh1"
android:title="@string/example"
app:showAsAction="always"
android:layoutDirection="rtl"/>
<item
android:id="@+id/nav_split_lists"
android:title="@string/split"
android:icon="@drawable/refresh2"
app:showAsAction="always"
app:actionViewClass="android.widget.ImageView"/>
<item
android:id="@+id/nav_change_net"
android:title="@string/change"
android:icon="@drawable/refresh3"
app:showAsAction="always"
android:layoutDirection="rtl"/>
</group>
</menu>
जावा:
navigationView.setNavigationItemSelectedListener(
new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(MenuItem menuItem) {
menuItem.setChecked(true);
mDrawerLayout.closeDrawers();
switch (menuItem.getItemId()) {
case R.id.nav_my_lists:
anim = AnimatorInflater.loadAnimator(getApplication(), R.animator.rotation);
anim.setTarget(menuItem.getIcon());
anim.setDuration(2000);
//anim.setStartDelay(10);
anim.addListener(new AnimatorListenerAdapter() {
@Override
public void onAnimationStart(Animator animation) {
Toast.makeText(getApplication(), "Started...", Toast.LENGTH_SHORT).show();
}
});
anim.start();
boolean run = anim.isRunning();
String title = menuItem.getTitle().toString();
loadShoppingList(title);
return true;