Изображения значков не отображаются при использовании Tab в MAUI на Android

Я пытаюсь добавить панель вкладок с вкладками в свое приложение MAUI, и она отлично работает с отображением и навигацией между страницами. Но по какой-то причине я просто не могу отображать изображения в свойстве Tab Icon. Я получаю только круглую точку. Хотя я заметил, что если я неправильно ссылаюсь на изображение, точка исчезает.

Я видел несколько видеороликов на YouTube, следил за вкладками Microsoft Fundamentals for Shell, пытался использовать другие значки и расширения, пробовал добавлять значки в ShellContent, но по-прежнему получаю только круглую точку.

<Shell
    x:Class = "MyApp.AppShell"
    xmlns = "http://schemas.microsoft.com/dotnet/2021/maui"
    xmlns:x = "http://schemas.microsoft.com/winfx/2009/xaml"
    xmlns:local = "clr-namespace:MyApp">

    <TabBar>
        <Tab Title = "Counter" 
             Icon = "counter.png">
            <ShellContent
                ContentTemplate = "{DataTemplate local:MainPage}"/>
        </Tab>
        <Tab Title = "Log"
             Icon = "log.png">
            <ShellContent
                ContentTemplate = "{DataTemplate local:Log}"/>
        </Tab>
        <Tab Title = "About"
             Icon = "about.png">
            <ShellContent 
                ContentTemplate = "{DataTemplate local:About}"/>
        </Tab>
    </TabBar>
</Shell>

Значки отлично работают, если я использую обычный ShellContent без Tab или TabBar.

<Shell
    x:Class = "MyApp.AppShell"
    xmlns = "http://schemas.microsoft.com/dotnet/2021/maui"
    xmlns:x = "http://schemas.microsoft.com/winfx/2009/xaml"
    xmlns:local = "clr-namespace:MyApp"
    FlyoutBehavior = "Flyout">

    <ShellContent
        Title = "Counter"
        ContentTemplate = "{DataTemplate local:MainPage}"
        Icon = "counter.png"
        Route = "MainPage" />

    <ShellContent
        Title = "Log"
        ContentTemplate = "{DataTemplate local:Log}"
        Icon = "log.png"
        Route = "Log" />

    <ShellContent
        Title = "About"
        ContentTemplate = "{DataTemplate local:About}"
        Icon = "about.png"
        Route = "About" />
</Shell>

Единственное, что я не пробовал, что используется в Microsoft Fundamentals, это xmlns:local = "clr-namespace:MyApp.View", но одно из видео на YouTube также не использовало этот шаблон MVVM.

Любые предложения или идеи?

Учитывая, что значок работает в одном месте, а не на вкладке/вкладке, пахнет так, будто это ошибка Мауи. Но я не пробовал значки там, так что я просто предположил. Вы пробовали в Windows, чтобы увидеть, работают ли они там?

ToolmakerSteve 26.01.2023 20:09

Просто кажется странным, что никто еще не сообщил об этом, хотя, возможно, вы правы. Увы, Windows Machine не запускается, и я не могу точно понять, какие настройки мне нужно проверить, чтобы она заработала. Появляется сообщение о том, что «Отладчик подключен к MyApp.exe, но не настроен для отладки этого необработанного исключения». Я читал, что это может быть параметр в Debug -> Windows -> Настройки исключений.

Ghost 27.01.2023 08:10
1
2
92
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Кажется, андроид не поддерживает установку цветного изображения в качестве значка вкладки. Я пробовал ваш код с двумя видами изображений. Вот мой код:

 <TabBar>
        <Tab
            Title = "Home"
            Icon = "first.png">
            <ShellContent ContentTemplate = "{DataTemplate local:MainPage}"/>
        </Tab>
        <Tab  Title = "NewPage"
        Icon = "second.png">
            <ShellContent ContentTemplate = "{DataTemplate local:NewPage1}"/>
        </Tab>
    </TabBar>
    <ShellContent
        Title = "Home"
        Icon = "first.png"
        ContentTemplate = "{DataTemplate local:MainPage}"
        Route = "MainPage" />
    <ShellContent
        Title = "NewPage"
        Icon = "second.png"
        ContentTemplate = "{DataTemplate local:NewPage1}"
        Route = "NewPage1" /> 

И результат с цветным изображением:

Значок получает круглую точку, если изображение является цветным.

Результат с черно-белой картинкой:

Иконка может корректно отображаться как во всплывающем элементе, так и на панели вкладок.

Вы совершенно правы. Я удалил фон изображения, оставив только значок белого цвета, и теперь я вижу его правильно. Красиво нашел. :) Такие вещи должны были быть упомянуты на вкладках Microsoft Fundamentals for Shell.

Ghost 31.01.2023 09:49

Другие вопросы по теме