Я пытаюсь добавить свои собственные значки на панель вкладок, но изображение становится черно-белым, есть ли способ сохранить значок с исходными цветами?
введите здесь описание изображения
Это выглядит, я думаю, что это выглядит очень плохо :/
введите здесь описание изображения
Я беру панель вкладок Duolingo, как мой образец, неужели это так сложно?





Вы можете использовать custom shellrenderer, чтобы создать собственную панель вкладок. Вы можете обратиться к этому Пользовательским средствам визуализации Xamarin.Forms Shell.
Вот код MyShellRenderer в файле проекта Android. Этот метод использует код bottomView.ItemIconTintList = null;, который может установить оттенок значка BottomNavigation равным нулю.
[assembly: ExportRenderer(typeof(AppShell), typeof(MyShellRenderer))]
namespace App30.Droid
{
public class MyShellRenderer : ShellRenderer
{
public MyShellRenderer(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, ShellAppearance appearance)
{
// code here
bottomView.ItemIconTintList = null;
}
}
}
TabBar может иметь различный передний план для выбранных/не выбранных/отключенных состояний, вы можете найти это в разделе Внешний вид документации по TabBar.
К сожалению, если желаемый визуальный элемент должен иметь несколько цветов в значке в состоянии, Xamarin TabBar из коробки не сможет этого добиться, поскольку по умолчанию он сглаживает и объединяет значок в один «слой». Как указано в комментариях, для этого вам понадобится собственная панель вкладок.
Что ж, это здравая логика, но мне нужно многому научиться, если я хочу это сделать, спасибо!
Я предполагаю, что DuoLingo использует настраиваемую панель вкладок, а не стандартную ОС.