gpt4 book ai didi

android - 如何在没有 Helper 的情况下删除 BottomNavigationView 的所有动画?

转载 作者:行者123 更新时间:2023-11-29 14:26:10 26 4
gpt4 key购买 nike

如何在没有任何 Helper 或 proGuard 的情况下删除 BottomNavigationView 的所有动画,并以简单的方式使用 google material 依赖 com.google.android.material:material:1.0.0

最佳答案

  1. 我们都知道默认情况下 BottomNavigationView 具有多种效果,例如水平平移和在选择菜单项时显示更大的文本。

Default

  1. 我们可以删除添加的翻译
<com.google.android.material.bottomnavigation.BottomNavigationView
...
app:itemHorizontalTranslationEnabled="false"/>

Translation Removed

  1. 我们可以在不使用 app:itemHorizo​​ntalTranslationEnabled="false" 的情况下同时显示标签和删除翻译
<com.google.android.material.bottomnavigation.BottomNavigationView
...
app:labelVisibilityMode="labeled"/>

Labeled

  1. 如果我们对第 3 点不满意,我们仍然可以通过在 dimens.xml 中添加 dimens 来使用与非 Activity 菜单相同的文本大小。通过这样做,我们几乎没有 BottomNavigationView 的动画
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools">
<dimen name="design_bottom_navigation_active_text_size"
tools:override="true">12sp</dimen>
</resources>

enter image description here

奖金问题

但是,还有一个问题。如果菜单文本是长文本怎么办?如果它由 2 个单词组成怎么办?

如果这是您的问题,您将看到在选择菜单时修剪过的长文本。 (请看第三个菜单)

Long Text Problem

这是我在尝试 BottomNavigationView

后得到的解决方案
void selectFragment(MenuItem item) {
item.setChecked(true);

int itemID = item.getItemId();
if (itemID == R.id.menu_a) {
pushFragment(MenuAFragment.newInstance("MENU A"));
}
else if (itemID == R.id.menu_b) {
pushFragment(MenuAFragment.newInstance("MENU B"));
}
else if (itemID == R.id.menu_c) {
pushFragment(MenuAFragment.newInstance("MENU C"));
}
else if (itemID == R.id.menu_d) {
pushFragment(MenuAFragment.newInstance("MENU D"));
}
else {
pushFragment(MenuAFragment.newInstance("MENU E"));
}

/**** START FROM HERE ****/

TextView largeTextView = bottomNavigationView.findViewById(itemID)
.findViewById(com.google.android.material.R.id.largeLabel);
TextView smallTextView = bottomNavigationView.findViewById(itemID)
.findViewById(com.google.android.material.R.id.smallLabel);

smallTextView.setVisibility(View.VISIBLE);
largeTextView.setVisibility(View.GONE);
}

基本上,我们只需要隐藏 largeTextView 并显示 smallTextView Long Text Problem Solved

想了解更多?看看这个 repo DisableShiftMode

关于android - 如何在没有 Helper 的情况下删除 BottomNavigationView 的所有动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54440178/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com