android-navigationview 相关问题

Android设计支持库的一个功能是为所有开发人员和所有Android 2.1或更高版本的设备带来了许多重要的材料设计组件。导航抽屉使您的应用程序具有轻松的UX导航功能,尤其适用于初次使用者。 NavigationView为开发人员提供了更容易建立Navigation Drawer UI的框架。

在 Android 中的汉堡导航菜单图标中添加徽章计数器

我的问题与这个问题相同(不是这个问题的重复)。 这个问题的唯一答案对我来说不起作用,因为,而不是将默认的汉堡包图标更改为

回答 1 投票 0

将导航视图背景更改为圆形在按下时不起作用

我正在布局中使用 app:itemBackground 设置导航项背景: 我正在布局中使用 app:itemBackground 设置导航项背景: <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:itemBackground="@drawable/nav_selector_background" app:headerLayout="@layout/nav_header_main" app:menu="@menu/activity_main_drawer"/> 这里是nav_selector_background.xml <ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="@color/colorNavItemSelected"> <item android:id="@android:id/mask"> <color android:color="#000"/> <!-- any color will do --> </item> <item android:right="8dp"> <selector> <item android:state_pressed="true" android:drawable="@drawable/nav_item_background_round"/> <item android:state_focused="true" android:drawable="@drawable/nav_item_background_round"/> <item android:state_checked="true" android:drawable="@drawable/nav_item_background_round"/> <item android:state_activated="true" android:drawable="@drawable/nav_item_background_round"/> <item android:state_active="true" android:drawable="@drawable/nav_item_background_round" /> <item android:state_hovered="true" android:drawable="@drawable/nav_item_background_round" /> <item android:state_drag_hovered="true" android:drawable="@drawable/nav_item_background_round" /> <item android:drawable="@android:color/transparent"/> </selector> </item> 还有nav_item_background_round: <?xml version="1.0" encoding="UTF-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape> <solid android:color="@color/colorNavItemSelected"/> <corners android:bottomRightRadius="32dp" android:topRightRadius="32dp"/> </shape> </item> </layer-list> 问题是当我按下该项目时,整个背景都会突出显示,如屏幕截图所示。我只想突出显示红色部分。 如果有人有兴趣编译和运行该应用程序,我已将示例上传到 Github。 通过 MaterialComponents 库中的 NavigationView,您可以使用: app:itemShapeAppearanceOverlay属性为每个项目定义自定义形状 app:itemShapeFillColor属性定义用于填充形状的颜色 类似: <com.google.android.material.navigation.NavigationView app:itemShapeFillColor="@color/selector_menu" app:itemShapeAppearanceOverlay="@style/ShapeAppearanceOverlay.Nav" android:theme="@style/ThemeOverlay.NavigationView" ../> 选择器类似于: <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:alpha="0.50" android:color="@color/primaryColor" android:state_pressed="true"/> <item android:alpha="0.12" android:color="@color/primaryColor" android:state_activated="true"/> <item android:alpha="0.12" android:color="@color/primaryColor" android:state_checked="true"/> <item android:color="@android:color/transparent"/> </selector> 形状定义为: <style name="ShapeAppearanceOverlay.Nav" parent=""> <item name="cornerFamily">rounded</item> <item name="cornerSizeTopRight">50%</item> <item name="cornerSizeBottomRight">50%</item> <item name="cornerSizeBottomLeft">0dp</item> <item name="cornerSizeTopLeft">0dp</item> </style> 还可以使用 android:theme 覆盖波纹使用的颜色。 <style name="ThemeOverlay.NavigationView" parent=""> <item name="android:colorControlHighlight">@android:color/transparent</item> </style> 我不确定你想要什么,但我认为这会解决你的问题。 nav_item_background_round.xml <?xml version="1.0" encoding="UTF-8"?> <ripple xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:color="#f816a463" tools:targetApi="lollipop"> <item android:id="@android:id/mask"> <shape android:shape="rectangle"> <solid android:color="#f816a463" /> </shape> </item> </ripple> 我也有同样的问题。我解决了它 首先 - 添加自定义样式到我的 navigationView app:theme="@style/NavigationDrawerStyle" <com.google.android.material.navigation.NavigationView android:id="@+id/nav_view" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="start" android:fadingEdge="none" android:fitsSystemWindows="true" android:overScrollMode="never" app:itemIconPadding="12dp" app:itemBackground="@drawable/drawer_background_selector" app:headerLayout="@layout/nav_header_main" app:itemIconTint="@drawable/drawer_item_icon_color" app:itemTextColor="@drawable/drawer_item_text_color" app:theme="@style/NavigationDrawerStyle" app:menu="@menu/activity_main_drawer" > 第二 - 然后在我的 styles.xml 中创建了一个自定义抽屉样式 NavigationDrawerStyle 然后 将 colorControlHighlight 设置为透明,这为我删除了矩形形状。 <style name="NavigationDrawerStyle" parent="ThemeOverlay.AppCompat.navTheme"> <item name="android:textSize">14sp</item> <item name="android:fontFamily">@font/robotomedium</item> <item name="android:colorControlHighlight">@android:color/transparent</item><!--Here Removes Rectangle--> </style>

回答 3 投票 0

从 6 模块多模块 Android 项目中的任何模块导航到任何模块

我有 6 个模块,每个模块都是不同的应用程序,但我将 5 个模块作为库模块,将第 6 个模块作为应用程序模块来启动活动和其他 所有模块都致力于一项活动,并且

回答 1 投票 0

如何在Android中制作浮动的NavigationView

我想复制Google在其应用程序中的菜单,但我不知道是否有像NavigationView和DrawerLayout这样的组件允许制作此菜单,但这不是固定的...

回答 1 投票 0

如何导航到 Android 上的根底部导航菜单项

我正在开发一个带有带有片段和导航图的导航组件的Android应用程序。 我的应用程序有一个带有菜单项的 BottomNavigationView,如“将目的地绑定到菜单项”中所述 ...

回答 1 投票 0

Android 导航抽屉项目单击侦听器不起作用

每次单击导航抽屉项目时,它都会关闭并且不会重定向到意图活动 /* MainActivity.java */ NavigationView 导航View = findViewById(R.id.

回答 1 投票 0

更改NavigationView的组菜单项中线分隔线的颜色

移动到材质3后,分隔线的颜色不同了。我想改变它。 主题.xml: <question vote="1"> <p>移动到材质3后,分隔线的颜色不同了。我想改变它。</p> <p><a href="https://i.stack.imgur.com/viTIp.png" target="_blank"><img src="https://cdn.txt58.com/i/AWkuc3RhY2suaW1ndXIuY29tL3ZpVElwLnBuZw==" alt=""/></a></p> <p><strong>主题.xml:</strong></p> <pre><code>&lt;style name=&#34;AppTheme&#34; parent=&#34;Theme.Material3.DayNight.NoActionBar&#34;&gt; </code></pre> <p><strong>menu_navigation.xml:</strong></p> <pre><code>&lt;menu xmlns:android=&#34;http://schemas.android.com/apk/res/android&#34;&gt; &lt;group android:id=&#34;@+id/nav_top&#34; android:checkableBehavior=&#34;single&#34;&gt; &lt;item android:id=&#34;@+id/nav_request&#34; android:icon=&#34;@drawable/icon_settings&#34; android:title=&#34;HELLO&#34; /&gt; &lt;/group&gt; &lt;group android:id=&#34;@+id/nav_other&#34; android:checkableBehavior=&#34;single&#34;&gt; &lt;item android:id=&#34;@+id/nav_cancel_payment&#34; android:icon=&#34;@drawable/icon_cancel&#34; android:title=&#34;LOL&#34; android:enabled=&#34;true&#34;/&gt; &lt;/group&gt; &lt;/menu&gt; </code></pre> <p>我的主要活动:</p> <pre><code>&lt;androidx.drawerlayout.widget.DrawerLayout android:layout_width=&#34;match_parent&#34; android:layout_height=&#34;match_parent&#34; android:background=&#34;@android:color/white&#34; android:id=&#34;@+id/drawer&#34;&gt; &lt;androidx.constraintlayout.widget.ConstraintLayout android:layout_width=&#34;match_parent&#34; android:layout_height=&#34;match_parent&#34;&gt; &lt;com.google.android.material.navigation.NavigationView android:id=&#34;@+id/navigation&#34; android:layout_width=&#34;wrap_content&#34; android:layout_height=&#34;match_parent&#34; android:layout_gravity=&#34;start&#34; app:drawerLayoutCornerSize=&#34;0dp&#34; app:dividerInsetStart=&#34;0dp&#34; app:dividerInsetEnd=&#34;0dp&#34; app:menu=&#34;@menu/menu_navigation&#34; app:layout_constraintStart_toStartOf=&#34;parent&#34; android:background=&#34;@android:color/white&#34; app:headerLayout=&#34;@layout/nav_header_view&#34;&gt; &lt;/com.google.android.material.navigation.NavigationView&gt; &lt;/androidx.drawerlayout.widget.DrawerLayout&gt; </code></pre> <p>如何更改颜色?</p> </question> <answer tick="false" vote="1"> <p><pre>M3</pre>中的<strong><code>listDivider</code></strong>颜色基于应用程序主题中定义的<strong><pre><code>colorOutline</code></pre></strong>。</p> <p>在您的应用程序主题中更改它:</p> <pre><code>&lt;style name=&#34;App.Theme&#34; parent=&#34;Theme.Material3.DayNight&#34;&gt; &lt;!-- ...... --&gt; &lt;item name=&#34;colorOutline&#34;&gt;@color/red500_dark&lt;/item&gt; &lt;/style&gt; </code></pre> <p>或者如果您只想覆盖布局中的 <pre><code>NavigationView</code></pre>,您可以使用:</p> <pre><code>&lt;com.google.android.material.navigation.NavigationView android:id=&#34;@+id/nav_view&#34; android:theme=&#34;@style/ThemeOverlay.App.NavigationView&#34; </code></pre> <p>与:</p> <pre><code>&lt;style name=&#34;ThemeOverlay.App.NavigationView&#34; parent=&#34;&#34;&gt; &lt;item name=&#34;colorOutline&#34;&gt;@color/red500_dark&lt;/item&gt; &lt;/style&gt; </code></pre> <p><a href="https://i.stack.imgur.com/0NnV5.png" target="_blank"><img src="https://cdn.txt58.com/i/AWkuc3RhY2suaW1ndXIuY29tLzBOblY1LnBuZw==" alt=""/></a></p> </answer> <answer tick="false" vote="0"> <p>更新 AppTheme 中的 <strong>android:listDivider</strong>。如果您只想在 NavigationView 布局中更改它,您可以尝试此操作。</p> <pre><code>&lt;style name=&#34;Theme.NavigationView&#34; parent=&#34;Widget.Material3.NavigationView&#34;&gt; &lt;item name=&#34;materialThemeOverlay&#34;&gt;@style/ThemeOverlay.NavigationView&lt;/item&gt; &lt;/style&gt; &lt;style name=&#34;ThemeOverlay.Keepass.NavigationView&#34; parent=&#34;&#34;&gt; &lt;item name=&#34;android:listDivider&#34;&gt;@color/green&lt;/item&gt; &lt;/style&gt; </code></pre> <p>现在您可以将其应用到您的 <strong>NavigationView</strong></p> <pre><code>&lt;com.google.android.material.navigation.NavigationView android:id=&#34;@+id/navigation&#34; style=&#34;@style/Theme.NavigationView&#34; android:layout_width=&#34;wrap_content&#34; android:layout_height=&#34;match_parent&#34; app:menu=&#34;@menu/menu_navigation&#34; app:headerLayout=&#34;@layout/nav_header_view&#34;&gt; </code></pre> </answer> </body></html>

回答 0 投票 0

Android BottomNavigation startDestination 循环 onCreate 函数

我有一个非常简单的应用程序,其中包含一个包含 FragmentContainerView 和 BottomNavigationView 的 MainActivity。 在 FragmentContainerView 中,我想显示三个片段之一。仅碎片...

回答 1 投票 0

迁移到 AndroidX 后,膨胀类 com.google.android.material.navigation.NavigationView 时出错

将项目更新到 AndroidX 并将 targetSdkVersion 设置为 28 后,从商店安装它进行 Beta 测试时,我的项目崩溃了。 以下是我收到的错误日志: 2019-07-08 0...

回答 14 投票 0

如何在 Android Jetpack Compose 子屏幕的 TopAppBar 中设置标题和按钮

我有一个使用顶部应用栏和底部导航的应用程序。 每个底部选项卡都有自己的 NavHostController 导航。 在我的主页选项卡上,我有一个像这样的 NavHostController 有趣的 HomeNavHost...

回答 0 投票 0

如何从导航视图标题中获取图像 ID? (Kotlin、Android Studio)

我才开始学习 Kotlin,也许对于高级开发人员来说这会容易一些。我在导航视图上有标题,这个标题有图像,图像有 id。我想当我点击这张图片时,打开新的

回答 1 投票 0

如何根据指定条件以编程方式设置 MenuItem 的背景颜色?

我正在研究使用 NavigationView 和菜单资源的导航栏。我想根据其 id 是否与字符串匹配来更改 MenuItem 的背景颜色。 我试过使用 setActionVie ...

回答 0 投票 0


导航视图菜单不更新

我在这里写的是一个问题,这个问题是我们从AppCompat库迁移到AndroidX库时引入的。在这样做的时候,我们从android.support.design.widget.NavigationView......转换到了AndroidX库。

回答 1 投票 0

Android菜单图标的大小,我不知道如何更改

我想更改图标的大小,但我不知道如何。我看到过人们在修复这些问题的帖子,但我不理解。您能帮我提供我的代码吗?

回答 1 投票 0

Android导航抽屉透明错误

我将导航抽屉与来自Google的arcore sdk的AR-Fragment结合使用时遇到问题,这是一个屏幕截图:当我更改当前片段时,它可以按预期工作。 ...

回答 1 投票 0

Android导航抽屉最大项目数

Android导航抽屉的最大项目数是多少?] >> [[

回答 2 投票 2

以编程方式添加到Navigationview的项目消失了

我有一个Navigationview,可以通过编程添加项目,一切正常。唯一的问题是项目在关闭活动后消失。菜单菜单= navigationView.getMenu(); ...

回答 1 投票 0

NavigationView Header视图项目为空

我在XML代码中具有如下所示的NavigationView:android:id =“ @ + id / activityMainNavigationView” android:layout_width =“ wrap_content” android:layout_height =“ match_parent”应用:...

回答 1 投票 0

Android NavigationView setBackgroundTintList不起作用

我想在NavigationDrawer中设置所选项目的颜色和背景。它适用于文本和图标,但不适用于所选项目的背景。 ColorStateList textColors = new ...

回答 1 投票 0

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