2016-09-15 13 views
1

私はNavigationViewに7つのメニュー項目を持つメニューを持っていますが、これらのメニュー項目のいくつかはユーザー設定に基づいて表示されず、残りの表示項目は異なる順序で表示される必要があります。項目はすでにXMLメニューレイアウトで定義されています。NavigationViewのメニューでMenuItemの順序を変更するにはどうすればいいですか?

私はたくさん検索しましたが、すでに定義されているメニュー項目には何も関係ありません。ほとんどのソリューションでは、コードでメニュー項目を作成し、作成中にその順序を設定することを提案していました。

<group android:checkableBehavior="single"> 
    <item 
     android:id="@+id/Home_menuitem" 
     android:title="Home" /> 
    <item 
     android:id="@+id/Register_menuitem" 
     android:title="Register" /> 
    <item 
     android:id="@+id/Login_menuitem" 
     android:title="Login" /> 
    <item 
     android:id="@+id/language_menuitem" 
     android:title="Language" /> 
    <item 
     android:id="@+id/ContactUs_menuitem" 
     android:title="Contact Us" /> 
    <item 
     android:id="@+id/Likes_menuitem" 
     android:title="Likes" /> 
    <item 
     android:id="@+id/Subscription_menuitem" 
     android:title="Subscription" /> 
    <item 
     android:id="@+id/Logout_menuitem" 
     android:title="Logout" /> 
</group> 

は、私が(XMLにNOT) "Likes_menuitem" は上記に表示されるようにするコードでの順序を変更したいと言う:ここ

は私のメニュー項目のXMLレイアウトであります"Home_menuitem"

答えて

0

私は試しませんでしたが、おそらくこれらの手順を実行することができます。

  1. を達成する異なる順序でそれ(から)に特定の項目を追加または削除

    navigationView.getMenu()

  2. メニューへの参照が最初に取得します。 docs

    add(int groupId, int itemId, int order, CharSequence title)

    removeItem(int id)

詳しい情報!

+0

このように、Addメソッドは新しいメニュー項目を作成します。あなたは既にXMLでそれを持っているMenuItemを使用しません...(MenuItem、Order)を追加するのと同じように簡単な方法を探しています –

+0

'findItem(int id) '返された' MenuItem'には 'setOrder(int order)'のようなメソッドはありません。だから多分これがこれを行う唯一の方法です。複雑ではないですが、少なくとも試しましたか? – cylon

+0

私はそれが複雑ではないことを知っていますが、私はそれを行う適切な方法を探していた!とにかく、私は今それをチェックし、フィードバックを得る。 –

0

これは、表示可能なmenuitemでtrueまたはfalseにすることができます。

+0

商品の表示を変更して注文を変更することはできません...質問は非常に明確です!それはメニューの項目の順序を変更することです –

関連する問題