【问题标题】:SetIcon change colorSetIcon 改变颜色
【发布时间】:2021-07-03 15:11:48
【问题描述】:

您好,我正在尝试设置底部导航栏的图标

Icon

但是每次它改变整个图标的颜色,然后它看起来像这样 Icon

是否可以不给图标颜色,这样它就不会改变整个图标?

【问题讨论】:

    标签: xamarin.forms xamarin.android


    【解决方案1】:

    您可以尝试使用自定义渲染器来设置图标。并将ItemIconTintList 设置为null。

    [assembly: ExportRenderer(typeof(AppShell), typeof(ShellCustomRenderer))]
    namespace App_Shell.Droid
    {
    class ShellCustomRenderer : ShellRenderer
    {
        public ShellCustomRenderer(Context context) : base(context)
        {
        }
    
        protected override IShellBottomNavViewAppearanceTracker CreateBottomNavViewAppearanceTracker(ShellItem shellItem)
        {
            return new CustomBottomNavAppearance();
        }
    }
    public class CustomBottomNavAppearance : IShellBottomNavViewAppearanceTracker
    {
        public void Dispose()
        {
    
        }
    
        public void ResetAppearance(BottomNavigationView bottomView)
        {
    
        }
    
        public void SetAppearance(BottomNavigationView bottomView, IShellAppearanceElement appearance)
        {
    
            bottomView.ItemIconTintList = null;
            IMenu myMenu = bottomView.Menu;
    
            IMenuItem myItemOne = myMenu.GetItem(0);
    
            if (myItemOne.IsChecked)
            {
                myItemOne.SetIcon(Resource.Drawable.cactus_24px); // selected icon
            }
            else
            {
                myItemOne.SetIcon(Resource.Drawable.icon_about); //default icon
            }
    
        }
    }
    }
    

    更新:

    如果你想改变shell的汉堡图标,你可以使用自定义渲染器将图标重置为CreateToolbarAppearanceTracker

    更多细节,你可以参考我之前做的线程。 How to hide back button in navigation bar using Xamarin.Forms - AppShell?

    如果你想改变导航栏的后退按钮颜色,你可以设置样式。请检查下面的链接。 Change back button color in Xamarin.Android

    【讨论】:

    • 我将图标中的白色更改为透明色,现在可以了:D 但你的也可以。现在我只需要了解如何更改后退按钮的颜色。我用 BackButtonBehaviour 更改了图标,并且图标出于某种原因是白色的(即使我使用了黑色图标)
    • 我已经更新了我的回复。请检查一下。
    • 我试图改回按钮颜色,但它不起作用。它没有改变后退按钮的颜色,但它在我的应用程序中改变了一些颜色(比如在你的顶部栏中为灰色),所以它可能已经过时了。
    • 我试着用工具栏来做。好消息是我的图标是黑色的,而且它会将我重定向回上一页。但不好的是,它在主页上打开工具栏菜单。有没有办法只在我的主页上删除那个工具栏菜单?
    • 我提供的链接是使用主题更改后退按钮颜色。它将覆盖原始主题的颜色。你可以创造你自己的。当您更改工具栏时。它会改变所有页面的工具栏。您可以在特定页面上删除。
    猜你喜欢
    • 1970-01-01
    • 2014-01-12
    • 2015-06-04
    • 2021-07-02
    • 2014-05-06
    • 2012-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多