2017-05-05 37 views
0

ボトムメニューのシフトモードを無効にしようとして、thisとすべての類似したスレッドを終了しました。ボトムメニューのアニメーションを無効にする

このヘルパークラスに使用:

package com.example.chen.jamsession; 

/** 
* Created by chen on 04/05/2017. 
*/ 
import android.support.design.internal.BottomNavigationItemView; 
import android.support.design.internal.BottomNavigationMenuView; 
import android.support.design.widget.BottomNavigationView; 
import android.util.Log; 
import java.lang.reflect.Field; 

class BottomNavigationViewHelper { 

    static void removeShiftMode(BottomNavigationView view) { 
     BottomNavigationMenuView menuView = (BottomNavigationMenuView) view.getChildAt(0); 
     try { 
      Field shiftingMode = menuView.getClass().getDeclaredField("mShiftingMode"); 
      shiftingMode.setAccessible(true); 
      shiftingMode.setBoolean(menuView, false); 
      shiftingMode.setAccessible(false); 
      for (int i = 0; i < menuView.getChildCount(); i++) { 
       BottomNavigationItemView item = (BottomNavigationItemView) menuView.getChildAt(i); 
       item.setShiftingMode(false); 
       // set once again checked value, so view will be updated 
       item.setChecked(item.getItemData().isChecked()); 
      } 
     } catch (NoSuchFieldException e) { 
      Log.e("ERROR NO SUCH FIELD", "Unable to get shift mode field"); 
     } catch (IllegalAccessException e) { 
      Log.e("ERROR ILLEGAL ALG", "Unable to change value of shift mode"); 
     } 
    } 
} 

そして、私の主な活動に実装を:

BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation); 
     BottomNavigationViewHelper.removeShiftMode(navigation); 

     navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener); 

これは私のメニューxmlです:

私はこの迷惑なアニメーションを無効にするにはどうすればよい
<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item 
     android:id="@+id/navigation_home" 
     android:icon="@drawable/ic_home_black_24dp" 
     android:title="@string/title_home" 
     android:enabled="true"/> 

    <item 
     android:id="@+id/navigation_mysessions" 
     android:enabled="true" 
     android:icon="@drawable/ic_dashboard_black_24dp" 
     android:title="@string/title_mysessions" /> 

    <item 
     android:id="@+id/navigation_notifications" 
     android:icon="@drawable/ic_notifications_black_24dp" 
     android:title="@string/title_notifications" 
     android:enabled="true"/> 

    <item 
     android:id="@+id/navigation_user" 
     android:icon="@drawable/ic_notifications_black_24dp" 
     android:title="@string/title_user" 
     android:enabled="true"/> 




</menu> 

+0

これを試してください:https://stackoverflow.com/questions/40972293/remove-animation-shifting-mode-from-bottomnavigationview-android –

答えて

0
mBottomNavigationView = (BottomNavigationViewEx) findViewById(R.id.bottom_navigation); 

mBottomNavigationView.enableShiftingMode(false);

関連する問題