Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Can';t在Xamarin表单中将多色图像添加到选项卡页面导航栏_C#_Android_Xaml_Xamarin.forms_Tabbedpage - Fatal编程技术网

C# Can';t在Xamarin表单中将多色图像添加到选项卡页面导航栏

C# Can';t在Xamarin表单中将多色图像添加到选项卡页面导航栏,c#,android,xaml,xamarin.forms,tabbedpage,C#,Android,Xaml,Xamarin.forms,Tabbedpage,因此,当我为我的Android应用程序设计导航栏时,我让它看起来像这样: 我在编码时遇到的唯一问题是,当我将每个图标的.png图像添加到MainPage.XAML上的XAML代码中时,图标最终会变成这样(图标只会变成黑色,没有其他颜色)。 android是否只能处理android的单色图标? 有没有办法禁用此默认功能 我知道android风格指南规定,导航栏中的图标不应使用多种颜色,但我需要对此应用程序进行例外处理。如果要在Tabbedpage中使用彩色图标,应为Tabbedpage创建自定义

因此,当我为我的Android应用程序设计导航栏时,我让它看起来像这样: 我在编码时遇到的唯一问题是,当我将每个图标的.png图像添加到MainPage.XAML上的XAML代码中时,图标最终会变成这样(图标只会变成黑色,没有其他颜色)。

android是否只能处理android的单色图标? 有没有办法禁用此默认功能


我知道android风格指南规定,导航栏中的图标不应使用多种颜色,但我需要对此应用程序进行例外处理。

如果要在Tabbedpage中使用彩色图标,应为Tabbedpage创建自定义渲染器

using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Support.Design.Widget;
using Android.Views;
using Android.Widget;
using TabbedDemo.Droid;
using Xamarin.Forms;
using Xamarin.Forms.Platform.Android;
using Xamarin.Forms.Platform.Android.AppCompat;

[assembly: ExportRenderer(typeof(TabbedPage), typeof(MyTabbedRenderer))]
namespace TabbedDemo.Droid
{
    public class MyTabbedRenderer : TabbedPageRenderer
    {
        public MyTabbedRenderer(Context context) : base(context)
        {
        }
        protected override void OnElementChanged(ElementChangedEventArgs<TabbedPage> e)
        {
            base.OnElementChanged(e);
            if (e.OldElement == null && e.NewElement != null)
            {
                for (int i = 0; i <= this.ViewGroup.ChildCount - 1; i++)
                {
                    var childView = this.ViewGroup.GetChildAt(i);
                    if (childView is ViewGroup viewGroup)
                    {
                        for (int j = 0; j <= viewGroup.ChildCount - 1; j++)
                        {
                            var childRelativeLayoutView = viewGroup.GetChildAt(j);
                            if (childRelativeLayoutView is BottomNavigationView)
                            {
                                ((BottomNavigationView)childRelativeLayoutView).ItemIconTintList = null;
                            }
                        }
                    }
                }
            }
        }
    }
}
使用Android.Content;
使用Android.OS;
使用Android.Runtime;
使用Android.Support.Design.Widget;
使用Android.Views;
使用Android.Widget;
使用TabbedDemo.Droid;
使用Xamarin.Forms;
使用Xamarin.Forms.Platform.Android;
使用Xamarin.Forms.Platform.Android.AppCompat;
[程序集:ExportRenderer(typeof(TabbedPage)、typeof(MyTabbedRenderer))]
名称空间TabbedDemo.Droid
{
公共类MyTabbedRenderer:TabbedPageRenderer
{
公共MyTabbedRenderer(上下文):基本(上下文)
{
}
受保护的覆盖无效OnElementChanged(ElementChangedEventArgs e)
{
基础。一个要素发生变化(e);
if(e.OldElement==null&&e.NewElement!=null)
{

对于(int i=0;我感谢mate,它起了作用-看起来就像现在的设计一样。显然,只有当您将工具栏放在底部时,当它位于视图顶部时(默认情况下),图标看起来才很好。