it-swarm.com.de

So entfernen Sie die Symbolanimation für die untere Navigationsansicht in Android

Ich habe in meinem Projekt die untere Navigationsansicht aus der Design Support Library 25 implementiert. Ich habe 5 Icons in der Ansicht. Jedes Mal, wenn ein Symbol ausgewählt wird, enthält es eine Animation. Bei 3 oder weniger Icons werden jedoch keine Animationen angezeigt. Ich möchte diese Animation entfernen und brauche nur etwas Farbänderung für das Symbol. Wie kann ich das erreichen? Genug gegoogelt, aber keine Lösung gefunden. Bitte helfen Vielen Dank.

17
Nabeel K

bekam Antwort von diesem Thread

Zum Entfernen des Animations- oder Umschaltmodus.

Die Implementierung von BottomNavigationView hat eine Bedingung: Wenn mehr als 3 Elemente vorhanden sind, verwenden Sie den Shift-Modus.

Helferklasse erstellen

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);
        } 
    } 
} 

Verwendungszweck

BottomNavigationView bottomNavigationView = (BottomNavigationView) findViewById(R.id.bottom_navigation_bar);
BottomNavigationViewHelper.disableShiftMode(bottomNavigationView);
83
Nabeel K

BottomNavigationViewEx ist eine gute Erweiterung des Standards BottomNavigationView . EnableShiftingMode (false) erledigt den Job für Sie.

7
Pei

Ich habe es versucht und es hat gut funktioniert 

BottomNavigationViewHelper.disableShiftMode(bottomNavigationView);

Oder dieser Code mainactivity.xml

app:labelVisibilityMode="unlabeled"
4
Azad Qaderzadeh

wenn ich die aktuelle Version benutze

implementation 'com.google.Android.material:material:1.1.0-alpha06'

und ich setze labelVisibilityMode auf "labels"

app:labelVisibilityMode="labeled"

unter diesen Umständen habe ich es durch

<dimen name="design_bottom_navigation_active_text_size" tools:override="true">@dimen/design_bottom_navigation_text_size</dimen>

Ich hoffe ich kann dir auch helfen.

1
coffee

Versuchen Sie dies ist das Layout 

app:labelVisibilityMode="labeled"

oder in der Codeebene mNavigationView.setLabelVisibilityMode(LabelVisibilityMode.LABEL_VISIBILITY_LABELED);

Aktualisieren Sie Ihre Design-Support-Bibliothek auf 28.0. +

0
Shangeeth Sivan

Dies ist möglicherweise nicht die eleganteste oder praktischste Lösung, Sie können jedoch versuchen, die folgende Zeile in Ihre BottomNavigationView einzufügen.

app:labelVisibilityMode="unlabeled"

Dadurch wird das Label entfernt und die Animation deaktiviert.

0
bimsina

Um eine Animation oder eine Verschiebung zu entfernen, erstellen Sie eine bottomNavigationViewHelper-Klasse mit 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);
    }
}
0
Gulam kadher

Material Design wird immer handlicher.

App-Abhängigkeit zu Ihrer Gradle-Datei (Update auf die neueste Version).

implementation 'com.google.Android.material:material:1.1.0-alpha09'

In MainActivity muss nur die Funktion clearAnimation () für die BottomNavigationView-Klasse aufgerufen werden

BottomNavigationView navView = findViewById(R.id.nav_view);
navView.clearAnimation();
0
Samsruti Dash

Ich füge nur diesen Code auf dimens.xml hinzu und es funktioniert wie ein Zauber!

<dimen name="design_bottom_navigation_active_text_size" tools:override="true">@dimen/design_bottom_navigation_text_size</dimen>
0