导航抽屉活动状态不起作用

时间:2016-12-12 04:49:40

标签: android

我认为这是一个简单的问题,但它让我头疼。

我一直试图让它发挥作用,但我总是失败。请忍受我的问题。

活动状态不适用于项目>菜单中的项目。

如果我按下该项目。 View工作正常。但是,如果我按下汉堡菜单。该项目没有处于活动状态,并且具有活动状态的最后一个项目仍将处于活动状态。

<group android:checkableBehavior="single">
    <item
        android:id="@+id/nav_home"
        android:icon="@drawable/menu_home"
        android:title="Home" />
    <item
        android:id="@+id/nav_game"
        android:icon="@drawable/menu_account"
        android:title="Game" />
    <item
        android:id="@+id/nav_livechat"
        android:icon="@drawable/menu_account"
        android:title="Live Chat"/>
</group>

<item android:title="Transaction">
    <menu>
        <item
            android:id="@+id/nav_deposit"
            android:icon="@drawable/menu_depwit"
            android:title="Deposit" />

        <item
            android:id="@+id/nav_withdraw"
            android:icon="@drawable/menu_depwit"
            android:title="Withdraw" />

        <item
            android:id="@+id/nav_transfer"
            android:icon="@drawable/menu_transfer"
            android:title="Transfer" />
    </menu>
</item>

public boolean onNavigationItemSelected(MenuItem item) {
    if (id == R.id.nav_home) {
        HomeFragment homeFragment = new HomeFragment();
        FragmentManager manager = getSupportFragmentManager();
        manager.beginTransaction().replace(R.id.content_fragment, homeFragment, homeFragment.getTag()).commit();
    } else if () {
        // and so on...
    }
}

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:0)

你可以做这样的事情

{{1}}

不是一个完美的解决方案,但为我工作..

答案 1 :(得分:0)

这是一个片段尝试它,希望它能帮助你

@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
    // Handle navigation view item clicks here.

    if (!item.isChecked()) {
        item.setChecked(true);
    }
    Bundle mBundle = new Bundle();
    switch (item.getItemId()) {
         case R.id.nav_home:
         // Your action goes here....
         break;
    }
    drawer.closeDrawer(GravityCompat.START);
    return true;
}