【问题标题】:How to hide tooltips on menuItem's in BottomNavigationView?如何在 BottomNavigationView 中隐藏 menuItem 上的工具提示?
【发布时间】:2019-11-15 10:01:47
【问题描述】:

如何在 BottomNavigationView 的 menuItem 上隐藏工具提示?现在我不知道如何控制这种行为。我已经尝试过这样的事情:

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

 TooltipCompat.setTooltipText(vBottomNavigation, null)

或者最后

   vBottomNavigation.setOnLongClickListener {
        true
    }

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

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

【问题讨论】:

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


    【解决方案1】:

    如果您不想在长按时显示此工具提示,您可以通过将 OnLongClickListener 设置为菜单项来覆盖 BottomNavigationItemView 的长按行为,如下面的代码(我尝试了这个解决方案具有以下版本的材料组件的底部导航视图: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 本身。

    【讨论】:

      【解决方案2】:

      目前没有显示/隐藏工具提示的方法。
      您可以将tooltipText 设置为:

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

      但是在BottomNavigationView 中有这个代码:

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

      如果您的工具提示为空或"",将显示标题

      【讨论】:

        猜你喜欢
        • 2011-03-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-23
        相关资源
        最近更新 更多