标签: android-navigationview

自定义导航视图菜单项之间的填充

是否可以自定义android设计支持库中菜单项之间的间距NavigationView

我的要求是创建一个子菜单,NavigationView其中菜单项之间的间距较小,然后是父菜单.

android navigation-drawer androiddesignsupport android-navigationview

5
推荐指数
1
解决办法
3405
查看次数

更改导航视图组项目背景

我想仅更改组项目的背景颜色.我能够更改所有项目或所选项目的颜色,也可以更改分隔符颜色,但我不知道如何更改分隔符标题背景.

这是我的代码

    <?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:app="http://schemas.android.com/apk/res-auto">
    <group>
        <item android:id="@+id/main"
              android:title="Main Menu">
         <menu> <group android:checkableBehavior="single">
        <item android:id="@+id/home"
              android:title="Home" />

        <item android:id="@+id/fav"
              android:title="Favourite"/>

        <item android:id="@+id/setting"
              android:title="Settings" />
         </group></menu>
        </item>
        <item android:id="@+id/sub_menu"
              android:title="Second Menu"
            >
            <menu>
                <group android:checkableBehavior="single">
                <item android:id="@+id/more"
                      android:title="more" />
                </group>
            </menu>
        </item>
    </group>
</menu>
Run Code Online (Sandbox Code Playgroud)

在这里我想改变主菜单和第二菜单的颜色.

android android-navigationview

5
推荐指数
0
解决办法
569
查看次数

使用NavigationView时,如何更改子菜单标题的颜色 - Android

我无法更改子菜单标题的颜色,请参见下图.

我可以更改NavigationView的背景,字体的颜色和图标的颜色,但我在子菜单标题上找不到答案.

例如

<android.support.design.widget.NavigationView
    android:id="@+id/navigation_view"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:background="@color/white"
    app:itemBackground="@color/white"
    app:itemIconTint="@color/dark_green"
    app:itemTextColor="@color/dark_green"
    app:headerLayout="@layout/drawer_header"
    app:menu="@menu/drawer" />
Run Code Online (Sandbox Code Playgroud)

这是我的菜单xml:

<group android:checkableBehavior="single">
    <item
        android:checked="true"
        android:icon="@drawable/ic_attachment"
        android:title="@string/nav_item_attachment" />
    <item
        android:icon="@drawable/ic_image"
        android:title="@string/nav_item_images" />
    <item
        android:icon="@drawable/ic_place"
        android:title="@string/nav_item_location" />
</group>

<item android:title="@string/nav_sub_menu">
    <menu>
        <item
            android:icon="@drawable/ic_emoticon"
            android:title="@string/nav_sub_menu_item01" />
        <item
            android:icon="@drawable/ic_emoticon"
            android:title="@string/nav_sub_menu_item02" />
    </menu>
</item>
Run Code Online (Sandbox Code Playgroud)

请指教.:-).

NavigationView子菜单问题

android textcolor submenu navigationview android-navigationview

5
推荐指数
1
解决办法
954
查看次数

在NavigationView中的彩色的图标

美好的一天,有没有办法,在导航抽屉上显示彩色图标?不对它们进行着色或将它们设置为黑色,并且在导航抽屉中单击时,它们中的每一个都将具有相应的颜色(突出显示/背景).

就像Google Store App抽屉一样.

icons android android-studio android-navigationview

5
推荐指数
2
解决办法
7722
查看次数

不调用onNavigationItemSelected

当有人点击导航视图时,我想调用onNavigationItemSelected.代码不会调用该onNavigationItemSelected方法:

 public boolean onNavigationItemSelected(MenuItem menuItem) {
    Log.d("Hello","called navigation");

    switch (menuItem.getItemId()) {
        case R.id.home:
            mDrawerLayout.closeDrawer(GravityCompat.START);
            break;
        default:
            mDrawerLayout.closeDrawer(GravityCompat.START);
            break;

    }

    return false;
}
Run Code Online (Sandbox Code Playgroud)

activity_main.xml是:

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="slidenerd.vivz.navigationviewdemo.MainActivity">

<LinearLayout
    android:id="@+id/main_content"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <android.support.v7.widget.Toolbar
        android:id="@+id/app_bar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/colorPrimary"
        android:minHeight="?attr/actionBarSize"
        app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" />



</LinearLayout>

<android.support.design.widget.NavigationView
    android:id="@+id/main_drawer"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    app:headerLayout="@layout/drawer_header"
    app:itemIconTint="@color/colorAccent"
    app:itemTextColor="@color/colorTextSecondary"
    app:menu="@menu/menu_drawer" />
Run Code Online (Sandbox Code Playgroud)

navigation_menu是:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <!--All the items added without any grouping-->
    <item
        android:id="@+id/home"
        android:icon="@drawable/ic_home"
        android:title="@string/home" />

    <item
        android:id="@+id/statistics"
        android:icon="@drawable/ic_trending_up"
        android:title="@string/statistics" /> …
Run Code Online (Sandbox Code Playgroud)

java android android-layout android-studio android-navigationview

5
推荐指数
1
解决办法
4820
查看次数

Android NavigationView项目涟漪效应

我想在单击项目时在android.support.design.widget.NavigationView中实现涟漪效果.我已经在我的主题中定义了波纹颜色.长按NavigationView的菜单项时,我可以看到正确的涟漪效果.但是当它是一个短暂的点击时,没有任何反应 - 没有波纹,没有任何点击的迹象.

我已经尝试为NavigationDrawer设置app:itemBackground ="?attr/selectableItemBackground".它不会改变任何东西,抽屉的行为就像插入这条线之前一样.

请帮助我在API 16+上获得连锁反应.谢谢.

android ripple navigationview android-navigationview

5
推荐指数
0
解决办法
844
查看次数

如何在 NavigationView 中设置徽章?

我使用NavigationDrawer来自 desin lib

compile 'com.android.support:design:24.0.0'
Run Code Online (Sandbox Code Playgroud)

XML

....

<android.support.design.widget.NavigationView
    android:id="@+id/nav_view"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:fitsSystemWindows="true"
    app:headerLayout="@layout/nav_header_main_second"
    app:menu="@menu/activity_third_drawer" />

....
Run Code Online (Sandbox Code Playgroud)

有一点我正在设置菜单

app:menu="@menu/activity_third_drawer"
Run Code Online (Sandbox Code Playgroud)

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/nav_inbox"
        android:icon="@drawable/ic_mail_outline_white"
        android:title="@string/inbox" />
    <item
        android:id="@+id/nav_gallery"
        android:icon="@drawable/ic_close_24dp"
        android:title="@string/gallery" />
    <item
        android:id="@+id/nav_slideshow"
        android:icon="@drawable/ic_close_24dp"
        android:title="@string/slideshow" />
    <item
        android:id="@+id/nav_manage"
        android:icon="@drawable/ic_close_24dp"
        android:title="@string/tools" />
</group>

<item android:title="@string/about_app">
    <menu>
        <item
            android:id="@+id/nav_about"
            android:icon="@drawable/ic_close_24dp"
            android:title="@string/about1" />
    </menu>
</item>
</menu>
Run Code Online (Sandbox Code Playgroud)

最终它看起来像这样

???????  ??? ?????????  ????????????

但我需要当消息进入收件箱时,它应该被标记为NavigationDrawer.

像这样

???????  ??? ?????????  ????????????

有很多不同的库可以帮助解决这个问题,我选择了这个

这个库可以在任何你想要的地方附加徽章,但没有一个样本锄头可以将它附加到<item>. 最接近的示例是如何附加到XML

<com.readystatesoftware.viewbadger.BadgeView
            android:id="@+id/badge"
            android:layout_width="wrap_content" …
Run Code Online (Sandbox Code Playgroud)

java xml android android-navigationview

5
推荐指数
1
解决办法
2960
查看次数

在Android N多窗口模式中删除导航视图顶部填充

我想从Android N的多窗口模式中删除paddingTop/ marginTop导航视图.就像Gmail一样.如果您看到下面的图像,我说的是正常的填充,其大小等于导航视图开头的状态栏.

在此输入图像描述

所以基本上在多窗口模式下(见下图)我必须在我的应用程序位于屏幕的第二部分时删除该填充.

在此输入图像描述

不幸的是,你可以从新的api 24获得,isInMultiWindowMode()但是不可能知道你的应用程序在屏幕的哪个部分.

android android-statusbar android-navigationview android-7.0-nougat

5
推荐指数
1
解决办法
1088
查看次数

带有缺口/显示切口的 Android 导航抽屉问题

我正在使用 Android Studio 模板“ Navigation Drawer Activity ”开发 Android 应用程序,但是如果我在带有 Notch/display Cutouts 的手机上打开导航抽屉,更大的状态栏会覆盖 Navigation Drawer header 的顶部

我怎么能解决这个问题?

在此处输入图片说明

这是活动布局xml:

<?xml version="1.0" encoding="utf-8"?>
 <android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:openDrawer="start"
    android:background="@color/colorPrimaryDark">

    <include
        layout="@layout/app_bar_main"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <android.support.design.widget.NavigationView
        android:id="@+id/nav_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:fitsSystemWindows="true"
        app:headerLayout="@layout/nav_header_main"
        app:menu="@menu/activity_main_drawer" />

</android.support.v4.widget.DrawerLayout>
Run Code Online (Sandbox Code Playgroud)

和导航抽屉标题布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="@dimen/nav_header_height"
    android:background="@drawable/navbar_size_edit"
    android:gravity="bottom"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin_bar_bottom"
    android:paddingLeft="@dimen/activity_horizontal_margin_bar"
    android:paddingRight="@dimen/activity_horizontal_margin_bar"
    android:paddingTop="@dimen/activity_vertical_margin_bar"
    android:theme="@style/ThemeOverlay.AppCompat.Dark">

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:contentDescription="@string/nav_header_desc"
        android:paddingTop="@dimen/nav_header_vertical_spacing"
        android:paddingBottom="@dimen/activity_vertical_margin_bar_bottom"
        app:srcCompat="@mipmap/avatar_me_round" />

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingTop="@dimen/nav_header_vertical_spacing"
        android:text="@string/app_name"
        android:textStyle="bold"
        android:textAppearance="@style/TextAppearance.AppCompat.Body1" /> …
Run Code Online (Sandbox Code Playgroud)

android android-navigationview display-cutouts

5
推荐指数
2
解决办法
2299
查看次数

导航视图似乎改变了背景颜色

我想让我的导航视图的背景是#121212,但是它变成了一个更浅的灰色。然而,当应用相同的颜色作为背景时,视图中的项目会显示正确的颜色。

android:background="@color/navview"
app:itemBackground="@color/navview"
Run Code Online (Sandbox Code Playgroud)

测试项的背景设置为与导航视图背景相同的颜色,但是如下所示的颜色存在惊人的差异。

在此处输入图片说明

导航视图背景是否有过滤器?我尝试通过将背景色调模式设置为空来禁用它,

        nvView.backgroundTintMode = null
Run Code Online (Sandbox Code Playgroud)

然而它似乎没有效果。任何帮助表示赞赏!

编辑:

<androidx.drawerlayout.widget.DrawerLayout

    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/navigation_drawer"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/navview"
    android:fitsSystemWindows="true">

    <FrameLayout
        android:id="@+id/container"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity" />

    <com.google.android.material.navigation.NavigationView
        android:id="@+id/nvView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:fitsSystemWindows="true"
        android:background="@color/navview"
        app:itemBackground="@color/navview"

        app:menu="@menu/toolbar_menu">


    </com.google.android.material.navigation.NavigationView>
</androidx.drawerlayout.widget.DrawerLayout>
Run Code Online (Sandbox Code Playgroud)

我的导航视图的背景颜色不正确,项目的背景颜色正确。我想要达到的颜色是#121212。

android kotlin android-navigationview material-components material-components-android

5
推荐指数
1
解决办法
479
查看次数