gpt4 book ai didi

java - 在底部导航栏中添加项目

转载 作者:行者123 更新时间:2023-11-30 00:05:26 26 4
gpt4 key购买 nike

我正在尝试根据从 API 获取的变量在底部菜单导航栏中添加一个项目。

我可以从这个导航栏中删除一个项目,像这样:

if (restaurant.acceptsBookings == false) {
bottom_navigation_view.menu.removeItem(R.id.bottom_menu_book)
}

问题是,当我启动我的应用程序时,我们可以在大约半秒的时间内看到该图标,然后它就消失了。

这还不错,但我希望有更好更简洁的方法来做到这一点;例如,通过在空导航栏中添加元素,而不是删除它们。

这是我的导航栏 xml 代码:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">

<item
android:id="@+id/bottom_menu_home"
android:enabled="true"
android:title="@string/bottom_menu_home"
android:icon="@drawable/ic_home"
app:showAsAction="ifRoom" />
<item
android:id="@+id/bottom_menu_menu"
android:enabled="true"
android:icon="@drawable/ic_menu"
android:title="@string/bottom_menu_menu"
app:showAsAction="ifRoom" />
<item
android:id="@+id/bottom_menu_profile"
android:enabled="true"
android:title="@string/bottom_menu_profile"
android:icon="@drawable/ic_user"
app:showAsAction="ifRoom" />
<item
android:id="@+id/bottom_menu_book"
android:enabled="true"
android:icon="@android:drawable/ic_menu_my_calendar"
android:title="@string/bottom_menu_bookings"
app:showAsAction="ifRoom" />
<item
android:id="@+id/bottom_menu_fidelity"
android:enabled="true"
android:icon="@drawable/giftgrey2"
android:title="@string/bottom_menu_fidelity"
app:showAsAction="ifRoom" />
</menu>

有人对此有解决方案吗?

提前致谢。

最佳答案

首先感谢大家对我的帮助。

我尝试了这两种方法,它们工作得很好:用

隐藏导航栏
bottomNavigationMenu?.visibility = View.GONE

就在bottomNavigationMenu声明之后,然后设置

bottomNavigationMenu?.visibility = View.VISIBLE

就在 API 响应之后。

动态创建项目的方法也可以,这里是方法

 bottomNavigationMenu?.menu?.add(Menu.NONE, 1, Menu.NONE, "TEST")?.setIcon(R.drawable.ic_home)

这是男人讲述的关于添加乐趣的内容(来自 https://developer.android.com/reference/android/view/Menu.html ; ctrl + f "add"43):

groupId int:该项目应属于的组标识符。这可用于为批处理状态更改定义项目组。如果一个项目不应该在一个组中,通常使用 NONE。

itemId int:唯一的项目 ID。如果您不需要唯一 ID,请使用 NONE。

order int:商品的订单。如果您不关心,请使用 NONE命令。请参阅 getOrder()。

title CharSequence:要为项目显示的文本。

感谢大家的帮助!

关于java - 在底部导航栏中添加项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49112982/

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