【问题标题】:New NavigationView starts from second item新的 NavigationView 从第二项开始
【发布时间】:2015-06-26 00:23:27
【问题描述】:

我真的不知道为什么,但是使用新的android.support.design.widget.NavigationView 我遇到了问题。我能够使用需要的片段创建正确的抽屉,并且在我的抽屉菜单.xml 中有这个:

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

        <item
            android:id="@+id/main_item"
            android:icon="@mipmap/ic_main"
            android:title="@string/main"
            />
        <item
            android:checked="true"
            android:id="@+id/second_item"
            android:icon="@mipmap/ic_playlist_add_black_24dp"
            android:title="@string/app_list"
            />

    </group>
</menu>

这里是菜单的 java 部分:

@Override
    public boolean onNavigationItemSelected(MenuItem menuItem) {
        @IdRes int id = menuItem.getItemId();
        if(id == mCurrentMenuItem) {
            mDrawerLayout.closeDrawers();
            return false;
        }
        switch (id){
            case R.id.main_item:
                setNewRootFragment(MainFragment.newInstance());
                break;
            case R.id.second_item:
                setNewRootFragment(SecondFragment.newInstance());
                break;
        }
        mCurrentMenuItem = id;
        menuItem.setChecked(true);
        return false;
    }

当应用程序启动 Fragment 时,我首先看到它是正确的,但在抽屉列表中选择了第二个。怎么可能?

【问题讨论】:

  • 作为 ianhanniballake 的答案,您设置了 checked='true' 使其为假或删除该行 ..

标签: java android android-fragments navigation-drawer navigationview


【解决方案1】:

您在列表中的第二个项目上设置了android:checked="true"。如果您希望它首先显示为选中,请将其移至第一项。

【讨论】:

  • 是的,你是对的。我从很多小时都在代码上,但我还没有看到。谢谢!
猜你喜欢
  • 1970-01-01
  • 2023-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-07
  • 2018-11-16
  • 2014-04-07
  • 1970-01-01
相关资源
最近更新 更多