2016-12-31 11 views
1

文書によれば、メニューに項目をプログラムで追加するには、thisを使用します。Android - ナビゲーションビューメニューの上部に項目を追加できない

Menu.add(Menu.NONE, Menu.NONE, 0, "item");私はナビゲーションビューのメニューの一番上にアイテムを追加することができますが、これにもかかわらず、新しく作成されたアイテムは下部に追加されます。何が問題なの?

+0

残りのアイテムはどのようにメニューに追加されますか? –

+0

@Alsparkz私の答えがあなたを助けてくれますか? –

答えて

0
@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     menu.add(Menu.NONE, Menu.NONE, 1000, "Item First"); 
     menu.add(Menu.NONE, Menu.NONE, 500, "Item Second"); 
     menu.add(Menu.NONE, Menu.NONE, 200, "Item Third"); 

     return true; 
    } 
// 200 is lowest 500 in middle and finally 1000 so the order is like below 

enter image description here

あなたのために働く必要があります!

:あなたのような両方のXMLとコードを使用する場合は、以下の

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.main, menu); 
     menu.add(Menu.NONE, Menu.NONE, 0, "1000"); //<---- It's 0 
     menu.add(Menu.NONE, Menu.NONE, 500, "500"); 
     menu.add(Menu.NONE, Menu.NONE, 200, "200"); 
     return true; 
    } 

とxml:

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto"> 
    <item 
     android:id="@+id/action_settings" 
             // <----------not Given 
     android:title="5000" 
     app:showAsAction="never" /> 

    <item 
     android:id="@+id/main_item" 
     android:orderInCategory="100" 
     android:title="200"/> 

    <item 
     android:id="@+id/teams_item" 
     android:orderInCategory="800" 
     android:title="800"/> 
</menu> 

を、あなたはに似た項目にorderInCategoryを追加するのを忘れた場合one次に、これらの項目がxmlを優先して先頭に移動します(例を確認してください)

enter image description here

+0

ご協力いただきありがとうございます! –

+0

@Alsparkzその場合のあなたの問題は何ですか? –

+0

はい、私は単に注文番号として0を設定することで、アイテムがリストのようにメニューの上部に追加されると思っていました –

0

android:orderInCategoryを使用して、メニューを正しい場所に配置する必要があります。 Integerの上にメニューが表示されます。あなたのメニューのすべての項目と、追加するときにも同様にandroid:orderInCategoryを入力してください。

関連する問題