在运行时替换 inflateMenu

Posted

技术标签:

【中文标题】在运行时替换 inflateMenu【英文标题】:Replacing inflateMenu at Runtime 【发布时间】:2019-03-25 16:35:44 【问题描述】:

我有改变导航抽屉菜单的方法,我删除了 XML 文件 activity_main.xml 中的行

 <android.support.design.widget.NavigationView
    android:id="@+id/nav_view"
    android:layout_
    android:layout_
    android:layout_gravity="start"
    android:fitsSystemWindows="true"
    app:headerLayout="@layout/nav_header_main"
    />

所以我可以从代码中添加菜单资源

    navigationView = (NavigationView) findViewById(R.id.nav_view);
    navigationView.inflateMenu(R.menu.activity_main_drawer);
    navigationView.setNavigationItemSelectedListener(this);

但是当我需要用另一个资源替换菜单时,菜单将附加到第一个,但我需要删除最旧的 请帮帮我

【问题讨论】:

更换菜单的方法在哪里? 您是否在寻找:navigationView.getMenu().clear(); 然后膨胀新菜单? yes Mohsen navigationView.getMenu().clear() 会先清除吗? 【参考方案1】:

感谢#Mohsen navigationView.getMenu().clear() 它会做到的

【讨论】:

以上是关于在运行时替换 inflateMenu的主要内容,如果未能解决你的问题,请参考以下文章

在程序运行时实现函数替换

是否可以在运行时替换方法?

StructureMap - 能够在运行时替换程序集

iOS运行时--替换方法

iOS运行时--替换方法

在运行时替换捆绑包中的图像