【问题标题】:Customize BottomNavigationView to show text for the selected item, and icon for non-selected items自定义 BottomNavigationView 以显示选定项目的文本,以及未选定项目的图标
【发布时间】:2022-01-01 22:10:27
【问题描述】:

我正在尝试制作这个NavigationBottomView

我想要的只是使所选项目成为文本而不是图标。

我用谷歌搜索并尝试制作自定义 navigationBottomView 项目,但我没有找到我想要的。

【问题讨论】:

  • 我认为这是一个图标而不是文本
  • @Zain 可以成为文本吗?甚至我可以隐藏图标并仅显示项目标题吗??

标签: android android-layout material-design bottomnavigationview android-bottomnavigationview


【解决方案1】:

有可能是文本吗?甚至我可以隐藏图标并只显示项目标题吗?

是的。

要控制切换 BottomNavigationView 项目文本,请将 app:itemTextColor 与自定义选择器一起使用

  • 在您的情况下,您需要在选中项目时显示文本,否则将其隐藏。

要控制切换项目图标,请使用 app:itemIconTint 和自定义选择器

  • 在您的情况下,您需要在未选中项目时显示图标,否则将其隐藏。

对于文本/图标两种情况,您都可以使用透明颜色作为隐藏状态的技巧。

例子:

<com.google.android.material.bottomnavigation.BottomNavigationView
    ...
    app:itemTextColor="@drawable/text_selector"
    app:itemIconTint="@drawable/icon_selector"

text_selector.xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="#FFEB3B" android:state_checked="true" />
    <item android:color="@android:color/transparent" android:state_checked="false" />
</selector>

icon_selector.xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="#FFEB3B" android:state_checked="false" />
    <item android:color="@android:color/transparent" android:state_checked="true" />
</selector>

更新

我之前尝试过,但我得到的所有图标都被隐藏了,文字仍然在 底部没有像你发送的 gif 那样移动到中心

您可以通过更改 BottomNavView 文本大小来获得相同的行为:

创建以下样式以增加项目文本:

<style name="BottomNavigationViewActiveItemText" parent="@style/TextAppearance.AppCompat.Caption">
    <item name="android:textSize">20sp</item>
</style>

将其应用于BottomNavigationViewapp:itemTextAppearanceActive="@style/BottomNavigationViewActiveItemText"

如果您的项目文本可以是两行,也可以使用:

<style name="BottomNavigationStyle">
    <item name="android:gravity">center</item>
    <item name="android:lines">2</item>
</style>

并使用android:theme="@style/BottomNavigationStyle" 应用它

【讨论】:

  • 非常感谢您的回答,我之前尝试过,但是我得到的所有图标都被隐藏了,并且文本仍然在底部没有像您发送@Zain 的 gif 那样移动到中心
  • @SeifE.Attia 欢迎您。请检查答案中的更新部分
  • 非常感谢您的努力,但文字没有从原来的位置移动:D
  • 我无法重现您能否分享您的演示项目或使用布局更新您的问题
猜你喜欢
  • 1970-01-01
  • 2016-03-12
  • 2015-01-15
  • 1970-01-01
  • 1970-01-01
  • 2016-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多