在android中不起作用子菜单

时间:2017-11-22 06:49:50

标签: android menu

大家好我在我的项目中创建navigationmenu列表,但是当我需要隐藏list列表中的子菜单项navigationmenu但是它不起作用/隐藏子-menu(点击时显示)对我来说,任何人都可以帮助/建议我在我的项目中删除此问题。抱歉英文不好

navlist.xml:

<item
            android:id="@+id/zonevi"
            android:title="Rotaract Club Of ">
            <menu>
                <item
                    android:id="@+id/club1"
                    android:title="Budhanilkantha"/>
                <item
                    android:id="@+id/club2"
                    android:title="Dillibazar Kathmandu"/>
                <item
                    android:id="@+id/club3"
                    android:title="Gongabu"/>
                <item
                    android:id="@+id/club4"
                    android:title="Kantipur"/>
                <item
                    android:id="@+id/club5"
                    android:title="Kathmandu Metro"/>
                <item
                    android:id="@+id/club6"
                    android:title="Kathmandu North East"/>
                <item
                    android:id="@+id/club7"
                    android:title="Kanthmandu Sunrise"/>
                <item
                    android:id="@+id/club8"
                    android:title="Kathmandu Youth North East"/>
                <item
                    android:id="@+id/club9"
                    android:title="Pashupati-Kathmandu"/>
                <item
                    android:id="@+id/club10"
                    android:title="Rajdhan"/>
                <item
                    android:id="@+id/club11"
                    android:title="Swoyambhu"/>
                <item
                    android:id="@+id/club12"
                    android:title="Thames International College"/>
            </menu>
        </item>

3 个答案:

答案 0 :(得分:1)

    NavigationView navigationView = (NavigationView)findViewById(R.id.nav_view);
    navigationView.getMenu().findItem(R.id.zonevi).setVisible(false);

R.id.zonevi将此替换为您要隐藏的项目ID

此外,如果您想在点击时禁用导航项,请使用

navigationView.getMenu().findItem(R.id.zonevi).setEnabled(false)

还有另一个选项setCheckable(boolean) true / false

即在实施onNavigationItemSelected

之后
 @Override
public boolean onNavigationItemSelected(MenuItem item)
{
    // Handle navigation view item clicks here.
    int id = item.getItemId();

  if (id == R.id.zonevi)
    {
     item.setCheckable(false); // this is stop the item click 
     item.setEnabled(false)
    }
} 

答案 1 :(得分:0)

试试这个

 Menu mMenu = mNavigationView.getMenu();

 for (int i = 0; i < mMenu.size(); i++) {

    if (mMenu.getItem(i).getItemId() != R.id.yourMainMenu){
        mMenu.getItem(i).setVisible(false);
    }

}

答案 2 :(得分:0)

我的完整代码是:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <group
        android:checkableBehavior="single"
        android:id="@+id/appcont">
        <item
            android:id="@+id/aboutme"
            android:title="About Me"
            android:icon="@mipmap/ic_about_me"/>
        <item
            android:id="@+id/news"
            android:title="Clubs News"
            android:icon="@mipmap/ic_clubs_news"/>
        <item
            android:id="@+id/zonecalendar"
            android:title="Zone Calendar"
            android:icon="@mipmap/ic_calendar"/>
        <item
            android:id="@+id/quiz"
            android:title="Rotra Quiz"
            android:icon="@mipmap/ic_quiz"/>
        <item
            android:id="@+id/zonevi"
            android:title="Rotaract Club Of ">
            <menu>
                <item
                    android:id="@+id/club1"
                    android:title="Budhanilkantha"
                    android:icon="@mipmap/ic_rtr"/>
                <item
                    android:id="@+id/club2"
                    android:title="Dillibazar Kathmandu"
                    android:icon="@mipmap/ic_rtr"/>
                <item
                    android:id="@+id/club3"
                    android:title="Gongabu"
                    android:icon="@mipmap/ic_rtr"/>
                <item
                    android:id="@+id/club4"
                    android:title="Kantipur"
                    android:icon="@mipmap/ic_rtr"/>
                <item
                    android:id="@+id/club5"
                    android:title="Kathmandu Metro"
                    android:icon="@mipmap/ic_rtr"/>
                <item
                    android:id="@+id/club6"
                    android:title="Kathmandu North East"
                    android:icon="@mipmap/ic_rtr"/>
                <item
                    android:id="@+id/club7"
                    android:title="Kanthmandu Sunrise"
                    android:icon="@mipmap/ic_rtr"/>
                <item
                    android:id="@+id/club8"
                    android:title="Kathmandu Youth North East"
                    android:icon="@mipmap/ic_rtr"/>
                <item
                    android:id="@+id/club9"
                    android:title="Pashupati-Kathmandu"
                    android:icon="@mipmap/ic_rtr"/>
                <item
                    android:id="@+id/club10"
                    android:title="Rajdhan"
                    android:icon="@mipmap/ic_rtr"/>
                <item
                    android:id="@+id/club11"
                    android:title="Swoyambhu"
                    android:icon="@mipmap/ic_rtr"/>
                <item
                    android:id="@+id/club12"
                    android:title="Thames International College"
                    android:icon="@mipmap/ic_rtr"/>
            </menu>
        </item>
    </group>

    <group
        android:checkableBehavior="single"
        android:id="@+id/appconnect">
        <item
            android:id="@+id/facebook"
            android:title="Facebook"
            android:icon="@mipmap/ic_facebook"/>
        <item
            android:title="Email"
            android:id="@+id/email"
            android:icon="@mipmap/ic_email"/>

    </group>

</menu>