如何在BottomNavigationView中的menuItem上隐藏工具提示?

时间:2019-11-15 10:01:47

标签: android kotlin bottomnavigationview material-components-android android-bottomnav

如何在BottomNavigationView中的menuItem上隐藏工具提示?现在,我无法控制该行为。我已经尝试过这样的事情:

    for (item in vBottomNavigation.children) {
        TooltipCompat.setTooltipText(item, null)
    }

 TooltipCompat.setTooltipText(vBottomNavigation, null)

或最终

   vBottomNavigation.setOnLongClickListener {
        true
    }

但是没有任何效果,我也尝试将菜单资源中的tooltipText设置为@null或空字符串,但是无论如何,只要长按底部菜单项,我都会看到工具提示。

我想控制底部导航视图中工具提示的可见性。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

如果您不想在长按时显示此工具提示,可以通过将OnLongClickListener设置为菜单项来覆盖 BottomNavigationItemView 的长按行为,例如下面的代码(我尝试使用具有以下版本的材料组件的BottomNavigationView:com.google.android.material:material:1.2.0-alpha04) :

bottomNavigation.menu.forEach {
  val view = bottomNavigation.findViewById<View>(it.itemId)
  view.setOnLongClickListener {
    // your logic here
    true
  }
}

请注意,此工具提示行为设置为每个BottomNavigationView在其构造函数上膨胀的BottomNavigationItemView ,因此,工具提示行为未设置为BottomNavigationView本身。

答案 1 :(得分:0)

目前没有显示/隐藏工具提示的方法。
您可以使用以下方法设置tooltipText

  • TooltipCompat.setTooltipText(item,"...")
  • bottomNavigationView.getMenu().getItem(i).setTooltipText("...")

但是在BottomNavigationView中有以下代码:

CharSequence tooltipText = !TextUtils.isEmpty(itemData.getTooltipText())
    ? itemData.getTooltipText()
    : itemData.getTitle();
TooltipCompat.setTooltipText(this, tooltipText);

如果工具提示为空或"",则会显示标题