4

我有几个关于新导航视图的问题。

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>

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

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

4

2 回答 2

5

1)滚动导航视图会滚动整个视图,但我只想让 >header 留在它的位置并且导航项滚动。

您无法使用当前的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>

给每个组一个唯一的 id 很重要。

3) 动态操作导航项

你可以使用类似的东西:

navigationview.getMenu().findItem(R.id.drawer_item_xxx).setVisible(xxx);
于 2015-06-25T13:14:48.523 回答
0

1)滚动导航视图会滚动整个视图,但我只想让 >header 留在它的位置并且导航项滚动。

由于 NavigationView 是 FrameLayout 我们可以添加 ListView 作为子项,并且不要忘记删除 NavigationView 中的 app:menu 属性,然后您将获得所需的行为。

于 2015-08-11T13:24:53.687 回答