submenus - menu de configuracion android studio
Cómo eliminar la animación de iconos para la vista de navegación inferior en Android (6)
He implementado la Vista de navegación inferior desde la Biblioteca de soporte de diseño 25 en mi proyecto. Tengo 5 iconos en la vista. cada vez que se selecciona un ícono está teniendo alguna animación. Pero cuando 3 o menos iconos no muestran animaciones. Quiero eliminar esa animación y solo necesito un cambio de color para el icono. ¿Cómo puedo conseguir esto? Ya he hecho suficiente google, pero no pudo encontrar la solución. Por favor ayuda. Gracias.
Intenté esto y funcionó bien
BottomNavigationViewHelper.disableShiftMode(bottomNavigationView);
O este código mainactivity.xml
app:labelVisibilityMode="unlabeled"
Intenta esto es el diseño
app:labelVisibilityMode="labeled"
o en el nivel de código mNavigationView.setLabelVisibilityMode(LabelVisibilityMode.LABEL_VISIBILITY_LABELED);
Y actualiza tu biblioteca de soporte de diseño a 28.0. +
Para eliminar la animación o el movimiento de cambio, cree una clase bottomNavigationViewHelper usando bottomNavigationViewEX
package com.example.chitchat.utils;
import android.util.Log;
import com.ittianyu.bottomnavigationviewex.BottomNavigationViewEx;
public class BottomNavigationViewHelper {
private static final String TAG = "bottomNavigationViewHel";
public static void setupBottomnavigationView(BottomNavigationViewEx bottomNavigationViewEx)
{
Log.d(TAG, "setupBottomnavigationView: setting up bottom navigation view");
bottomNavigationViewEx.enableAnimation(false);
bottomNavigationViewEx.enableShiftingMode(false);
bottomNavigationViewEx.enableItemShiftingMode(false);
bottomNavigationViewEx.setTextVisibility(false);
}
}
Puede que esta no sea la solución más elegante o práctica, pero podría intentar agregar la siguiente línea a su BottomNavigationView.
app:labelVisibilityMode="unlabeled"
Se eliminará la etiqueta y también se desactivará la animación.
Tengo respuesta de este thread .
Para eliminar la animación o el modo de cambio.
La implementación de BottomNavigationView
tiene una condición: cuando hay más de 3 elementos, utilice el modo de cambio.
Crear clase de ayuda
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);
}
}
}
Uso
BottomNavigationView bottomNavigationView = (BottomNavigationView) findViewById(R.id.bottom_navigation_bar);
BottomNavigationViewHelper.disableShiftMode(bottomNavigationView);
BottomNavigationViewEx es una buena extensión para BottomNavigationView estándar. enableShiftingMode (falso) hace el trabajo por usted.