navigationview 相关问题

提供导航抽屉访问。 Android的设计支持库的一部分。

如何为单个 NavigationView MenuItem 图标着色?

我有一个导航视图,其中为图标色调和文本颜色设置了选择器。看起来如下。 我有一个 NavigationView,其中为图标色调和文本颜色设置了选择器。看起来如下。 <android.support.design.widget.NavigationView android:id="@+id/main_nav_view" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="start|center" android:fitsSystemWindows="true" app:headerLayout="@layout/nav_header_main" app:itemIconTint="@color/nav_drawer_list_selector" app:itemTextColor="@color/nav_drawer_list_selector" /> 我在此导航视图中显示了几个菜单项。我想让其中一件染上不同的颜色。我可以这样访问该项目: Menu navMenu = navigationView.getMenu(); MenuItem noAdsItem = navMenu.findItem(R.id.item_navigation_purchase_no_ads); 我已经尝试了以下所有方法。 设置颜色滤镜() noAdsItem.getIcon().setColorFilter(Color.RED, PorterDuff.Mode.SRC_IN); 包裹可绘制对象并设置色调 Drawable drawable = ContextCompat.getDrawable(this, R.drawable.ic_no_ads); Drawable drawable = noAdsItem.getIcon(); Drawable wrappedDrawable = DrawableCompat.wrap(drawable); DrawableCompat.setTint(wrappedDrawable, ContextCompat.getColor(this, R.color.content_brand)); 改变可绘制对象并设置色调 drawable.mutate(); drawable.setColorFilter(ContextCompat.getColor(this, R.color.content_brand), PorterDuff.Mode.SRC_IN); drawable.setTint(ContextCompat.getColor(this, R.color.content_brand)); 我尝试过使用彩色图标作为资源;它被选择器覆盖。我尝试删除 itemIconTint 选择器并以编程方式对图标进行着色。所有这些尝试都没有成功。 我知道可以对文本进行着色等。我使用了 SpannableString 方法,并且它有效。 SpannableString spanString = new SpannableString(menuItem.getTitle().toString()); spanString.setSpan(new ForegroundColorSpan(ContextCompat.getColor(this, color)), 0, spanString.length(), 0); menuItem.setTitle(spanString); 我在 Pixel 3XL 上使用 Android Pie。有任何想法吗?预先感谢。 这很可能发生,因为可绘制对象上的色调值被 NavigationView 覆盖。 一种可能的方法是忽略来自 NavigationView 对特定图标的着色调用。您可以创建自己的 Drawable 包装类以与特定图标一起使用。 想法大纲:在 android DrawableWrapper 之上创建您自己的可绘制包装器,并返回您自己的色调颜色,无论 NavigationView 在可绘制上设置什么。 class MyDrawableWrapper extends DrawableWrapper { @Override public void setTint(int tint) { setTintList(ColorStateList.valueOf(tintColor)); } public void setTintList(@Nullable ColorStateList tint) { // Apply your own tint here super.setTintList(yourOwnTintList/* <-- */); } }

回答 1 投票 0

无法在Android Studio中添加插件

我正在尝试将 com.google.android.material:material:1.1.0 添加到我的应用程序中,但它不起作用。我能做些什么? 代码部分如下; 依赖项{ 实现(libs.appcompat) 实施...

回答 1 投票 0

Android Studio 无法添加插件

我正在尝试将“com.google.android.material:material:1.1.0”添加到我的应用程序中,但它不起作用。我能做些什么? 代码部分如下; `依赖项{ 实现(libs.appcompat) 实施(l...

回答 1 投票 0

如何从 MainWindow 上的 NavigationView 控件中的框架中的页面检索当前 WinUI 3 MainWindow 的窗口句柄

我正在创建我的第一个 WinUI 3 桌面应用程序。我的主窗口上有一个导航视图。 我通过 NavigationView 中的框架导航到 9 个不同的页面。 其中一页是

回答 2 投票 0

SwiftUI 中,NavigationView 应该在 TabView 内部还是外部?两者都有问题

当 NavigationView 放置在 TabView 外部时,关闭工作表可能会导致显示错误视图。 (在 SwiftUI 中,当 MyView 弹出表关闭时,MyView 应该被dis...

回答 1 投票 0

为什么我的抽屉布局导致布局看起来很奇怪

我正在使用抽屉布局和导航组件。我的代码对我来说一切看起来都很好。但是当我运行该应用程序时,它看起来像: 一般情况下底部都有边距,但好像是附着的...

回答 1 投票 0

SwiftUI 为什么 navigationTitle 不随 List 一起滚动

有一个工具栏按钮可以更改ContentView中的viewStyle。 当viewStyle改变时,MyPage会根据viewStyle重新生成List。然而,一代之后,彼此之间的距离...

回答 1 投票 0

SwiftUI 中带有 NavigationView 的 GeometryReader 最初给出的大小为 .zero

我在 NavigationView 中有一个 GeometryReader,当视图首次显示时,最初大小为 0。我不确定这是一个错误还是正确的行为,但我正在寻找一种方法来解决这个问题......

回答 2 投票 0

在visionOS NavigationView中设置侧边栏宽度约束

我知道可以像这样操纵 NavigationSplitView 的侧边栏宽度。- 导航分割视图 { 文本(“侧边栏”) .navigationSplitViewColumnWidth(最小值:100,理想...

回答 1 投票 0

SwiftUI 列表导航标题字体和填充更新?

我正在尝试更改标题上的字体和填充(“我的标题”)?因此,我将 .navigationTitle 设置为具有良好的列表行为,当您滚动经过标题时,它会更新

回答 1 投票 0

使用选择环境对象弹出快速嵌套导航链接

我有一个 NavigationView,它有 3 个我想连续导航到的视图。每个视图中都有一个 NavigationLink。理想情况下,我想要: 视图 1 -> 视图 2 -> 视图 3 但我得到的是:查看 1 ...

回答 1 投票 0

在 SwiftUI 中,当 MyView 弹出表关闭时,应该显示 MyView 而不是 ListView

这里是三个视图,ContentView,ListView和MyView。点击第一个底部图标显示ListView,然后点击NavigationLink显示MyView。点击按钮显示sheet,关闭ListView显示的sheet...

回答 1 投票 0

在NavigationTitle下添加副标题

假设我有以下代码: 结构 SwiftUIView: 查看 { var body: 一些视图 { 导航视图{ 虚拟堆栈{ 文本(“你好”) 文字(...

回答 5 投票 0

禁用折叠侧边栏/NavigationSplitView

如何在 macOS 中禁用侧边栏最小化?在 App Store、音乐、提醒、邮件、消息等应用程序中,此功能被禁用。在像反馈助手这样的应用程序中,存在一个严重错误 - 在最小化之后...

回答 1 投票 0

如何访问 kotlin 导航抽屉中导航视图内的视图

我想要导航视图中的返回功能。我想知道如何添加单击侦听器以返回位于导航视图内的按钮。我有这样的代码 以下。 我的活动...

回答 1 投票 0

如何将动作绑定到navigationview后退按钮?

我想将一个操作绑定到导航视图工具栏中的后退按钮,可以吗? var body: 一些视图 { 列表 { ForEach(mainViewModel.items) { 项目中

回答 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

SwiftUI-有没有办法从另一个视图返回主屏幕而不出现后退按钮?

我正在尝试制作一个锻炼应用程序,当用户完成一组锻炼时,我希望他们能够按一个按钮返回主屏幕。 总共有5个练习,所以我做了5个

回答 3 投票 0

如何防止DoubleColumnNavigationView在ipad下折叠

结构NavigationViewPadTest:视图{ var body: 一些视图 { 导航视图{ 列表(0..<30){ i in Text("id:\(i)") } Text(&q...

回答 2 投票 0

SwiftUI 通过导航视图中的视图共享计时器

我是 SwiftUI 的新手。 我想制作一个应用程序,可以在导航视图中浏览不同的视图,并在后台运行计时器,在每个视图上显示时间。 该项目...

回答 2 投票 0

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