我尝试动态添加底部导航视图。我知道我在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()'
如何动态添加导航视图?
答案 0 :(得分:2)
这是BottomNavigationView
的错误。
以下是错误参考:https://issuetracker.google.com/issues/37124043
已在支持库25.0.1
中修复此问题。更新您的support library
,然后重试。
希望这会有所帮助〜
答案 1 :(得分:0)
尝试这样做
bottomNavigationView = new BottomNavigationView(ActivityName.this);
或
bottomNavigationView = new BottomNavigationView(getApplicationContext());
答案 2 :(得分:0)
您可以定义菜单xml并在BottomNavigationView对象上调用inflateMenu方法进行膨胀。
如果您需要添加任何其他菜单项,可以通过获取菜单对象并将项添加到菜单对象来实现。
菜单menu = bottomNavigationView.getMenu();