Android设计支持库导航视图自定义

iit*_*ant 4 android navigation-drawer android-design-library androiddesignsupport android-navigationview

我对新的导航视图有几个问题.

1)滚动导航视图会滚动整个视图,但我只想让标题留在它的位置并滚动导航项.

在此输入图像描述

2)要实现分频器黑白导航项目,我可以这样做:

<item
android:id="@+id/navigation_subheader"
android:title="@string/navigation_subheader">
<menu>
    <item
        android:id="@+id/navigation_sub_item_1"
        android:icon="@drawable/ic_android"
        android:title="@string/navigation_sub_item_1"/>
    <item
        android:id="@+id/navigation_sub_item_2"
        android:icon="@drawable/ic_android"
        android:title="@string/navigation_sub_item_2"/>
</menu>
</item>
Run Code Online (Sandbox Code Playgroud)

但如果没有副标题,它就不起作用.我试图给它一个空白字符串,但只留下一个垂直空格而不是副标题.我需要由分隔符分隔的导航项组,但没有子标题.

3)动态操作导航项.在此之前,我曾经使用垂直列表视图作为导航项.我只是将可见性设置为我不想要的任何导航项目.如何动态更改导航项?

Gab*_*tti 5

1)滚动导航视图会滚动整个视图,但我只想让>标题保留在它的位置并滚动导航项.

您无法使用当前获取它NavigationView.它遵循材料准则.如果您想要这种模式,则必须使用自定义视图.

2)要实现分频器黑白导航项目,我可以这样做:

您可以使用NavigationView定义菜单的标准,如下所示:

<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <group android:id="@+id/group1" android:checkableBehavior="single" id>
       //items of group1
    </group>

    <group android:id="@+id/group2" android:checkableBehavior="single" id>
       //items of group2
    </group>
</menu>
Run Code Online (Sandbox Code Playgroud)

为每个组提供唯一ID非常重要.

3)动态操作导航项

您可以使用以下内容:

navigationview.getMenu().findItem(R.id.drawer_item_xxx).setVisible(xxx);
Run Code Online (Sandbox Code Playgroud)