Comment supprimer l'animation d'icône pour la vue de navigation en bas dans android
j'ai mis en œuvre la vue de Navigation du bas de la bibliothèque de soutien de conception 25 dans mon projet. J'ai 5 icônes dans la vue. chaque fois qu'une icône est sélectionnée, elle est animée. Mais quand 3 icônes ou moins ne montre aucune animation. Je veux supprimer cette animation et n'ai besoin que d'un changement de couleur pour l'icône. Comment puis-je y parvenir? J'ai fait assez de recherches sur Google, mais je n'ai pas trouvé la solution. S'il vous plaît aider. Grâce.
3 réponses
obtenu de réponse à partir de ce thread.
pour supprimer l'animation ou le mode shift.
mise en oeuvre de BottomNavigationView
a la condition: quand il y a plus de 3 articles, utilisez le mode shift.
Créer une classe helper
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;
public class BottomNavigationViewHelper {
public static void disableShiftMode(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);
//noinspection RestrictedApi
item.setShiftingMode(false);
// set once again checked value, so view will be updated
//noinspection RestrictedApi
item.setChecked(item.getItemData().isChecked());
}
} catch (NoSuchFieldException e) {
Log.e("BNVHelper", "Unable to get shift mode field", e);
} catch (IllegalAccessException e) {
Log.e("BNVHelper", "Unable to change value of shift mode", e);
}
}
}
Utilisation
BottomNavigationView bottomNavigationView = (BottomNavigationView) findViewById(R.id.bottom_navigation_bar);
BottomNavigationViewHelper.disableShiftMode(bottomNavigationView);
BottomNavigationViewEx est une bonne extension de BottomNavigationView standard. enableShiftingMode (false) fait le travail pour vous.
ce n'est peut-être pas la solution la plus élégante ou la plus pratique, mais vous pouvez essayer d'ajouter la ligne suivante à votre BottomNavigationView.
app:labelVisibilityMode="unlabeled"
il supprimera l'étiquette et désactivera également l'animation.