Android BottomAppBar 动态子菜单配置

Posted

技术标签:

【中文标题】Android BottomAppBar 动态子菜单配置【英文标题】:Android BottomAppBar dynamic submenu configuration 【发布时间】:2021-07-10 17:21:54 【问题描述】:

短版:

我正在寻找与 onPreprareOptionMenu() 等效的 BottomAppBar,以便我可以动态配置(启用/禁用)子菜单项。

完整版:

我有一个 layout.xml:

<androidx.coordinatorlayout.widget.CoordinatorLayout>
    ...
    <com.google.android.material.bottomappbar.BottomAppBar
        ...
        app:menu="@menu/menu"
        />

</androidx.coordinatorlayout.widget.CoordinatorLayout>

和 menu.xml:

<menu>
    <item android:id="@+id/action"
        ...
        >
        <menu>
            <item android:id="@+id/action_1"
                ...
                />
            <item android:id="@+id/action_2"
                ...
                />
        </menu>
    </item>
</menu>

现在,我想动态启用或禁用子菜单 id/action_1 或 id/action_2。有什么想法吗?

【问题讨论】:

【参考方案1】:

一旦您获得了对 BottomAppBar 的引用(例如,可以通过 findViewById() 或 Data Binding 获得),就可以访问子菜单项:

bottomAppBar.menu
        .findItem(R.id.action).subMenu
        .findItem(R.id.action_1).isEnabled = false

【讨论】:

以上是关于Android BottomAppBar 动态子菜单配置的主要内容,如果未能解决你的问题,请参考以下文章

如何将bottomAppBar放置在布局中

Flutter沉浸式透明状态栏|flutter自定义凸起BottomAppBar导航

右侧的 BottomAppBar 项

如何以编程方式显示/隐藏 BottomAppBar?

如何在 BottomAppBar 的开始/左侧对齐 FAB

如何将 BottomAppBar + FAB 与 BottomNavigationView 结合使用