在回顾了很多材料之后,我仍然没有找到解决方案。正如您在下面的git上看到的那样,当您点击botton导航图标时,它从中心到边缘都有灰色动画。有没有办法禁用此动画?
Gray animation 这是我的XML
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottom_navigation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_gravity="bottom"
android:background="@android:color/white"
app:elevation="0dp"
app:itemIconTint="@color/bottomNavigationIconColor"
app:itemTextColor="@drawable/nav_item_text_color_state"
app:labelVisibilityMode="labeled"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:menu="@menu/bottom_navigation_main" />
和nav_item_text_color_state
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_checked="false"
android:color="@color/bottomNavigationIconColor" />
<item
android:state_checked="true"
android:color="#005EFF" />
</selector>
更新
找到解决方案。要禁用这种灰色波纹效果,只需将app:itemBackground="@null"
添加到xml。
答案 0 :(得分:1)
使用 app:itemRippleColor="@color/your_color"
设置您的自定义颜色以获得点击效果或使用 app:itemRippleColor="@null"
设置无效果
答案 1 :(得分:0)
您必须创建一个bottomNavigationViewHelper
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);
}
}
}
,然后将其应用于您的活动至bottomNavigationView
BottomNavigationViewHelper.disableShiftMode(bottomNavigationView);
答案 2 :(得分:0)
找到了解决方案,只需将app:itemBackground="@null"
添加到xml。