在 BottomNavigationView 中禁用 tooltipText
Disable tooltipText in BottomNavigationView
我正在使用
implementation 'com.google.android.material:material:1.1.0-alpha09'
这是我的菜单
<item
android:id="@+id/llHome"
android:icon="@drawable/selector_menu_home"
android:title="@string/navigation.bottom.home"
app:tooltipText="@null" />
但只要我写长按或禁用它,带有菜单名称的工具提示就会继续出现。知道如何禁用工具提示吗?
它将显示工具提示文本或选项卡标题。您可以通过遍历所有 BottomNavigationItemView
并调用 TooltipCompat.setTooltipText(view, null)
来清除文本
实际上
bottomNavigationView.menu.forEach { TooltipCompat.setTooltipText(activity!!.findViewById(it.itemId), null) }
按下底部按钮后不工作。
这是我的解决方案:
fun BottomNavigationView.disableTooltipText() {
try {
val menuViewField = this.javaClass.getDeclaredField("menuView")
menuViewField.isAccessible = true
val menuView = menuViewField.get(this) as BottomNavigationMenuView
menuView.forEach {
it.setOnLongClickListener {
true
}
}
} catch (e: Exception) {
Log.w(e)
}
}
这对我不起作用,bottomNavigationView.menu.forEach { TooltipCompat.setTooltipText(activity!!.findViewById(it.itemId), null) }
不起作用所以下面的答案对我有用
bottomNavigationView.menu.forEach {
val view = bottomNavigationView.findViewById<View>(it.itemId)
view.setOnLongClickListener {
true
}
}
我们可以用这个答案创建一个扩展:
fun BottomNavigationView.disableTooltipText() {
val menuIterator = menu.iterator()
while(menuIterator.hasNext()) {
val menu = menuIterator.next()
findViewById<View>(menu.itemId)?.let { view ->
TooltipCompat.setTooltipText(view, null)
}
}
}
我正在使用
implementation 'com.google.android.material:material:1.1.0-alpha09'
这是我的菜单
<item
android:id="@+id/llHome"
android:icon="@drawable/selector_menu_home"
android:title="@string/navigation.bottom.home"
app:tooltipText="@null" />
但只要我写长按或禁用它,带有菜单名称的工具提示就会继续出现。知道如何禁用工具提示吗?
它将显示工具提示文本或选项卡标题。您可以通过遍历所有 BottomNavigationItemView
并调用 TooltipCompat.setTooltipText(view, null)
实际上 bottomNavigationView.menu.forEach { TooltipCompat.setTooltipText(activity!!.findViewById(it.itemId), null) } 按下底部按钮后不工作。
这是我的解决方案:
fun BottomNavigationView.disableTooltipText() {
try {
val menuViewField = this.javaClass.getDeclaredField("menuView")
menuViewField.isAccessible = true
val menuView = menuViewField.get(this) as BottomNavigationMenuView
menuView.forEach {
it.setOnLongClickListener {
true
}
}
} catch (e: Exception) {
Log.w(e)
}
}
这对我不起作用,bottomNavigationView.menu.forEach { TooltipCompat.setTooltipText(activity!!.findViewById(it.itemId), null) }
不起作用所以下面的答案对我有用
bottomNavigationView.menu.forEach {
val view = bottomNavigationView.findViewById<View>(it.itemId)
view.setOnLongClickListener {
true
}
}
我们可以用这个答案创建一个扩展:
fun BottomNavigationView.disableTooltipText() {
val menuIterator = menu.iterator()
while(menuIterator.hasNext()) {
val menu = menuIterator.next()
findViewById<View>(menu.itemId)?.let { view ->
TooltipCompat.setTooltipText(view, null)
}
}
}