Android - 动态添加底部导航视图

Android - Add bottom navigation view dynamically

我尝试动态添加底部导航视图。我知道我在 activity 的 xml 文件中添加了一个导航视图。

<android.support.design.widget.BottomNavigationView
   android:id="@+id/navigation"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:layout_gravity="start"
   design:menu="@menu/items" />

我不想创建项目 xml 文件。我使用下面的代码创建导航栏。

    bottomNavigationView = new BottomNavigationView(this);
    ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
    bottomNavigationView.setLayoutParams(params);

    RelativeLayout layout = (RelativeLayout) findViewById(R.id.viewLayout);
    layout.addView(bottomNavigationView);

    Menu menu = bottomNavigationView.getMenu();
    menu.add(0, i, Menu.NONE, "TEXT");

menu.add 抛出错误。

android.support.v7.view.menu.MenuBuilder.size()' on a null object reference

如何动态添加导航视图?

尝试这样做

bottomNavigationView = new BottomNavigationView(ActivityName.this);

bottomNavigationView = new BottomNavigationView(getApplicationContext());

这是 BottomNavigationView 的错误。

这是错误参考:https://issuetracker.google.com/issues/37124043

这已在支持库 25.0.1 中修复。更新您的 support library 并重试。

希望对你有所帮助~

您可以定义菜单 xml 并在 BottomNavigationView 对象上调用 inflateMenu 方法对其进行扩充。

如果您需要添加任何额外的菜单项,您可以通过获取菜单对象并将项目添加到菜单对象来实现。

菜单菜单=bottomNavigationView.getMenu();