2017-05-11 8 views
1

下のナビゲーションビューを動的に追加しようとしています。私は、アクティビティのxmlファイル内にナビゲーションビューを追加することを知っています。Android - 下のナビゲーションビューを動的に追加する

<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()」nullのオブジェクト参照の上

どのように動的にナビゲーションビューを追加することができますか?

+0

サポートライブラリのバージョンは何ですか? – FAT

+0

コンパイル 'com.android.support:design:25.0.0' –

+1

サポートライブラリを更新してもう一度やり直してください – FAT

答えて

2

これはBottomNavigationViewのバグでやってみてください。ここで

は、バグの参照です:https://issuetracker.google.com/issues/37124043

これは、サポートライブラリ25.0.1で修正されています。 support libraryを更新してもう一度お試しください。これはあなたがメニューXMLを定義し、BottomNavigationViewオブジェクトのinflateMenuメソッドを呼び出し、それを膨らませることができます〜

0

が、これは

bottomNavigationView = new BottomNavigationView(ActivityName.this); 

または

bottomNavigationView = new BottomNavigationView(getApplicationContext()); 
+0

java.lang.IllegalArgumentException:デザインライブラリでTheme.AppCompatテーマ(または子孫)を使用する必要があります。このエラーはBottomNavigationViewコンストラクターが発生しています。 –

0

を助ける

希望。

追加のメニュー項目を追加する必要がある場合は、メニューオブジェクトを取得し、メニューオブジェクトに項目を追加することで行います。

メニューメニュー= bottomNavigationView.getMenu();

+0

はい、わかっています。しかし、私はメニューXMLファイルなしで作成しようとします。それは可能ですか? –

+0

メニューオブジェクトがnullであるという問題を再現しようとしました。 –

+0

私の問題はXMLファイルではありません。私はres/menuの下にxmlを作成したくありません。私は、新しいBottomNavigationView()を動的に作成し、レイアウトに追加しようとしています。 –

関連する問題