是否可以自定义android设计支持库中菜单项之间的间距NavigationView?
我的要求是创建一个子菜单,NavigationView其中菜单项之间的间距较小,然后是父菜单.
android navigation-drawer androiddesignsupport android-navigationview
我想仅更改组项目的背景颜色.我能够更改所有项目或所选项目的颜色,也可以更改分隔符颜色,但我不知道如何更改分隔符标题背景.
这是我的代码
<?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)
在这里我想改变主菜单和第二菜单的颜色.
我无法更改子菜单标题的颜色,请参见下图.
我可以更改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)
请指教.:-).
android textcolor submenu navigationview android-navigationview
美好的一天,有没有办法,在导航抽屉上显示彩色图标?不对它们进行着色或将它们设置为黑色,并且在导航抽屉中单击时,它们中的每一个都将具有相应的颜色(突出显示/背景).
就像Google Store App抽屉一样.
当有人点击导航视图时,我想调用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
我想在单击项目时在android.support.design.widget.NavigationView中实现涟漪效果.我已经在我的主题中定义了波纹颜色.长按NavigationView的菜单项时,我可以看到正确的涟漪效果.但是当它是一个短暂的点击时,没有任何反应 - 没有波纹,没有任何点击的迹象.
我已经尝试为NavigationDrawer设置app:itemBackground ="?attr/selectableItemBackground".它不会改变任何东西,抽屉的行为就像插入这条线之前一样.
请帮助我在API 16+上获得连锁反应.谢谢.
我使用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) 我想从Android N的多窗口模式中删除paddingTop/ marginTop导航视图.就像Gmail一样.如果您看到下面的图像,我说的是正常的填充,其大小等于导航视图开头的状态栏.
所以基本上在多窗口模式下(见下图)我必须在我的应用程序位于屏幕的第二部分时删除该填充.
不幸的是,你可以从新的api 24获得,isInMultiWindowMode()但是不可能知道你的应用程序在屏幕的哪个部分.
android android-statusbar android-navigationview android-7.0-nougat
我正在使用 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) 我想让我的导航视图的背景是#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