Как отключить ненужное пространство в левой части Shell.TitleView?

Ниже приведена моя страница AppShell.xaml:

<?xml version = "1.0" encoding = "UTF-8" ?>
<Shell
    x:Class = "MauiAppTest.AppShell"
    xmlns = "http://schemas.microsoft.com/dotnet/2021/maui"
    xmlns:x = "http://schemas.microsoft.com/winfx/2009/xaml"
    xmlns:local = "clr-namespace:MauiAppTest"
    Title = "MauiAppTest"
    FlyoutBehavior = "Disabled"
    FlyoutItem.IsVisible = "False">
    <Shell.TitleView>
        <Grid BackgroundColor = "Red">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width = "*" />
                <ColumnDefinition Width = "Auto" />
            </Grid.ColumnDefinitions>
            <Image
                Grid.Column = "0"
                Margin = "0,0,0,0"
                HeightRequest = "50"
                HorizontalOptions = "Center"
                Source = "app_icon.png"
                VerticalOptions = "Center" />
        </Grid>
    </Shell.TitleView>


    <ShellContent ContentTemplate = "{DataTemplate local:MainPage}" Route = "MainPage" />
</Shell>

Ниже показано изображение AppShell во время работы приложения (окрашено красным):
Изображение работающего приложения Shell.TitleView

На изображении слева от TitleView есть небольшое черное пространство. Я не хочу, чтобы это было там, и понятия не имею, почему оно там.

Я пробовал отключить FlyoutItem и FlyoutBehaviour, но безрезультатно. Я не могу найти нигде, что могло бы вызвать появление этого дополнительного пространства слева.

Я попробовал грубое решение этой проблемы — установить отрицательное значение поля логотипа приложения, чтобы правильно центрировать его, но оно будет смещено, когда на других страницах будет отображаться кнопка «Назад».

Я хочу знать, есть ли способ скрыть это дополнительное пространство или правильно центрировать изображение и замаскировать этот раздел, чтобы избежать проблем с выравниванием, когда на страницах отображается кнопка «Назад».

Могу ли я узнать, на какую платформу вы ориентируетесь и какую версию .NET вы используете?

Alexandar May - MSFT 04.07.2024 02:56

Я ориентируюсь на Android и использую .net 8.

Bappity 04.07.2024 04:07

Спасибо за ваш ответ, вы можете удалить его, используя ответ, который я разместил ниже.

Alexandar May - MSFT 04.07.2024 04:14
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
3
68
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Небольшое дополнительное пространство в левой части TitleView связано с [iOS] Shell/NavigationPage TitleView #20959 и [Spec] Shell/NavigationPage TitleView #5063, и это может быть исправлено в .NET 9 с выпуском последующих версий.

В качестве альтернативного решения вы можете исправить это, добавив приведенный ниже код в файл MauiProgram.cs, если вы ориентируетесь на платформу Android:

Microsoft.Maui.Handlers.ToolbarHandler.Mapper.AppendToMapping("CustomNavigationView", (handler, view) =>
{
#if ANDROID
        handler.PlatformView.ContentInsetStartWithNavigation = 0;
        handler.PlatformView.SetContentInsetsAbsolute(0, 0);
#endif
});

проверено и работает! спасибо, это сводило меня с ума всю последнюю неделю.

Bappity 04.07.2024 04:26

Рад видеть, что это работает, хорошего дня!

Alexandar May - MSFT 04.07.2024 04:43

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