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

问题描述 投票:3回答:2

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

[1)滚动导航视图将滚动整个视图,但我只希望标题保留在该位置,并且导航项要滚动。

<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS9QbVFVSy5wbmcifQ==” alt =“在此处输入图像描述”>

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)动态操纵导航项。在此之前,我曾经使用垂直列表视图作为导航项。我将可见性设置为不需要的任何导航项的位置。如何动态更改导航项?

android navigation-drawer android-design-library androiddesignsupport android-navigationview
2个回答
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>

重要的是给每个组唯一的ID。

3)动态操纵导航项

您可以使用类似:

navigationview.getMenu().findItem(R.id.drawer_item_xxx).setVisible(xxx);

0
投票

1]滚动导航视图将滚动整个视图,但我只希望>标题保留在该位置,并且导航项将滚动。

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

© www.soinside.com 2019 - 2024. All rights reserved.