Удаление тени под панелью действий Xamarin Forms Android - PullRequest
0 голосов
/ 26 февраля 2020

У меня проблемы с поиском решения для этого, и даже атрибут, указанный на сайте документации, не работает. Вот пример из документации:

<ContentPage ...
             Shell.NavBarHasShadow="true">
    ...
</ContentPage>

Когда я пытаюсь добавить атрибут в мою ContentPage, он возвращает ошибку, которая говорит:

Код серьезности Описание Состояние подавления строки файла проекта Ошибка XLS0415 Присоединяемое свойство 'HasShadow' не найдено в типе 'Shell'. LoanApp2 LoanHistory.xaml 8

Это мой MainPage.xaml:

<?xml version="1.0" encoding="utf-8" ?>
<Shell xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:d="http://xamarin.com/schemas/2014/forms/design"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             xmlns:local="clr-namespace:LoanApp2.Views"
             mc:Ignorable="d"
             x:Class="LoanApp2.MainPage" BackgroundColor="#62bef0" Title="Dylan Villaruel">

    <FlyoutItem Title="MyTabApp" Shell.TabBarIsVisible="False" FlyoutDisplayOptions="AsMultipleItems">
        <ShellContent Title="Loan History" IsTabStop="True" ContentTemplate="{DataTemplate local:LoanHistory}"/>
        <ShellContent Title="Amount Loanable" IsTabStop="True" ContentTemplate="{DataTemplate local:AmountLoanable}"/>
    </FlyoutItem>

</Shell>

Обе оболочки ShellContent заключены в ContentPage в теги root.

Это скриншот проблемы:

1 Ответ

0 голосов
/ 26 февраля 2020

@ e700867

Вам нужно создать пользовательский рендер, чтобы удалить тень от навигации в оболочке, надеюсь, вам поможет следующий код:

public class CustomShellRenderer : ShellRenderer
{
    public CustomShellRenderer(Context context) : base(context)
    {
    }

    protected override IShellToolbarAppearanceTracker CreateToolbarAppearanceTracker()
    {
        return new CustomShellToolbarAppearanceTracker(this);
    }
}

internal class CustomShellToolbarAppearanceTracker : IShellToolbarAppearanceTracker
{
    private CustomShellRenderer customShellRenderer;

    public CustomShellToolbarAppearanceTracker(CustomShellRenderer customShellRenderer)
    {
        this.customShellRenderer = customShellRenderer;
    }

    public void Dispose()
    {

    }

    public void ResetAppearance(Toolbar toolbar, IShellToolbarTracker toolbarTracker)
    {

    }

    public void SetAppearance(Toolbar toolbar, IShellToolbarTracker toolbarTracker, ShellAppearance appearance)
    {

        toolbar.SetBackgroundColor(Android.Graphics.Color.Green);
        var viewParent = (Android.Support.Design.Widget.AppBarLayout)toolbar.Parent;            
        viewParent.SetElevation(0.0f);
    }
}

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...