Menü simgesi animasyonunun yeni Gezinme Görünümünde çalışıp çalışmadığını anlamaya çalışıyorum, aynı şekilde eylem öğeleri animasyonu veya bu uygulama düzeninde kullanılan herhangi bir diğer görünüm.Android NavigationView MenuItem Icon Animation
Aşağıdaki kod benim için çalışmıyor. Yeni destek kitaplığı için Android tarafından yayınlanan kod örneğini test etmek için kullanıyorum. Aynı animasyon kodu araç çubuğunda güzel bir şekilde çalışır.
Ben bir şey eksik galiba ...
sayesinde ileride: Ayrıca animasyon için eski API çalıştı (Animated Icon for ActionItem bu bağlantıyı takip).
Kodu:
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>
java:
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;