如何在android中删除底部导航视图的图标动画

如何在android中删除底部导航视图的图标动画,android,animation,icons,bottomnavigationview,android-bottomnav,Android,Animation,Icons,Bottomnavigationview,Android Bottomnav,我在我的项目中实现了Design Support Library 25中的底部导航视图。我在视图中有5个图标。无论何时选择一个图标,它都有一些动画。但当3个或更少的图标不显示任何动画时。我想删除该动画,只需要对图标进行一些颜色更改。我怎样才能做到这一点?做了足够多的谷歌搜索,但找不到解决方案。请帮忙。谢谢。从中得到了答案 删除动画或切换模式。 BottomNavigationView的实现有一个条件:当有3个以上的项目时,使用shift模式 创建助手类 是标准BottomNavigationVi

我在我的项目中实现了Design Support Library 25中的底部导航视图。我在视图中有5个图标。无论何时选择一个图标,它都有一些动画。但当3个或更少的图标不显示任何动画时。我想删除该动画,只需要对图标进行一些颜色更改。我怎样才能做到这一点?做了足够多的谷歌搜索,但找不到解决方案。请帮忙。谢谢。

从中得到了答案

删除动画或切换模式。

BottomNavigationView
的实现有一个条件:当有3个以上的项目时,使用shift模式

创建助手类

是标准BottomNavigationView的良好扩展。
enableShiftingMode(false)为您完成了这项工作。

这可能不是最优雅或最实用的解决方案,但您可以尝试将以下行添加到BottomNavigationView

app:labelVisibilityMode="unlabeled"

它将删除标签并禁用动画。

要删除动画或按住shift键移动,请使用bottomNavigationViewEX创建bottomNavigationViewHelper类

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

试试这个布局

app:labelVisibilityMode=“labeled”

或者在代码级别
mNavigationView.setLabelVisibilityMode(LabelVisibilityMode.LABEL\u VISIBILITY\u LABEL)


并将您的设计支持库更新为28.0。+

我尝试过这一点,效果很好

BottomNavigationViewHelper.disableShiftMode(bottomNavigationView);
或者此代码为mainactivity.xml

app:labelVisibilityMode="unlabeled"

当我使用当前版本时

implementation 'com.google.android.material:material:1.1.0-alpha06'
我将labelVisibilityMode设置为“标记”

在这种情况下,我成功了

<dimen name="design_bottom_navigation_active_text_size" tools:override="true">@dimen/design_bottom_navigation_text_size</dimen>
@dimen/design\u bottom\u导航\u文本\u大小

我希望我也能帮助你。

我只是在dimens.xml上添加了这段代码,它的工作非常有魅力

<dimen name="design_bottom_navigation_active_text_size" tools:override="true">@dimen/design_bottom_navigation_text_size</dimen>
@dimen/design\u bottom\u导航\u文本\u大小

材料设计越来越方便使用

应用程序对Gradle文件的依赖关系(更新至最新版本)

在MainActivity中,只需要调用clearAnimation()函数到BottomNavigationView类

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

标签文本大小的更改会导致动画。 如果将“常规”、“活动”和“非活动”文本外观设置为相同,则不会有任何更改,因此不会出现动画

例如:

<android.support.design.widget.BottomNavigationView
    android:id="@+id/navigation"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom"

    app:itemTextAppearance="@style/TextAppearance.AppCompat.Caption"
    app:itemTextAppearanceActive="@style/TextAppearance.AppCompat.Caption"
    app:itemTextAppearanceInactive="@style/TextAppearance.AppCompat.Caption"

    app:menu="@menu/navigation"/>

在这里,我已经设置了预构建的样式(@style/TextAppearance.AppCompat.Caption),但是如果需要,您可以设置自己的文本样式。请记住将这三个参数设置为相同。

只需执行此操作。。 在“值”存储库和“添加”文件中创建dimen文件

<dimen name="design_bottom_navigation_active_text_size">10sp</dimen>
<dimen name="design_bottom_navigation_text_size">10sp</dimen>
10sp
10便士
以上10sp只是一个例子。 并在BottomNavigationView中添加

<com.google.android.material.bottomnavigation.BottomNavigationView
..
app:labelVisibilityMode="labeled"/>


您好,谢谢您的提问和回答,这很好,但我仍在努力解决图标的颜色问题,默认情况下,我的图标是黑色的,但它显示为浅黑色,当我单击图标时,它会变为白色。。如何解决?我不知道为什么这在我的应用程序中不起作用:(我已经挣扎了几个小时,现在我发现下面有错误。BottomNavigationItemView.setShiftingMode只能从同一个库组中调用(groupId=com.android.support)@SureshParmar,看起来与最新版本的Design Library一样,这不起作用。你知道他们是否将禁用shift模式移动到了公共API吗?对于那些发现这一点的人,以下是Android支持库问题跟踪器中的一个问题,它将此添加为BottomNavigationView的一项功能:可能复制以禁用缩放动画遵循此答案:要使用此功能,您需要使用com.android。支持:设计:28.0.0-alpha1。但我希望标签不带动画。@user7832102要禁用缩放动画,请遵循此答案:或MainActivity.xml应用程序中的此代码:labelVisibilityMode=“label”迄今为止的最佳解决方案。谢谢
BottomNavigationView navView = findViewById(R.id.nav_view);
navView.clearAnimation();
<android.support.design.widget.BottomNavigationView
    android:id="@+id/navigation"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom"

    app:itemTextAppearance="@style/TextAppearance.AppCompat.Caption"
    app:itemTextAppearanceActive="@style/TextAppearance.AppCompat.Caption"
    app:itemTextAppearanceInactive="@style/TextAppearance.AppCompat.Caption"

    app:menu="@menu/navigation"/>
<dimen name="design_bottom_navigation_active_text_size">10sp</dimen>
<dimen name="design_bottom_navigation_text_size">10sp</dimen>
<com.google.android.material.bottomnavigation.BottomNavigationView
..
app:labelVisibilityMode="labeled"/>