Un poco extraño. He creado una aplicación en Xamarin Forms (Shell) y todo funciona bien en Android. Cuando navego a una nueva página en ios (dispositivo físico iphone 11), la pantalla parece aparecer y cambiar de tamaño. Creo que esto está relacionado con la propiedad del área segura utilizada en las vistas que está sucediendo un poco demasiado lento, ya que parece estar en las áreas seguras y luego cambia de tamaño para estar en la zona segura.

Sin impacto en Android.

No puedo recrear en un nuevo proyecto, pero mi proyecto actual tiene una inversión de tiempo significativa y no quiero comenzar de nuevo ... No puedo retroceder a mi proyecto existente, el problema persiste.

Algún código de ejemplo a continuación, pero lo extraño es que parece funcionar en un nuevo proyecto, así que estoy buscando orientación sobre qué más podría establecerse en algún lugar para depurar este problema. ¿Alguna idea? Puede proporcionar ejemplos de código adicionales según sea necesario, hágamelo saber.

He intentado actualizar y degradar paquetes, etc. sin efecto.

Paquetes

Navego usando

   private async Task ExecuteAddPageCommand()
        {
            await PushAsync(new AddPagePage());
        }

Donde PushAsync está en mi modelo de vista base

    public async Task<bool> PushAsync(Page page)
    {
        try
        {
            await Shell.Current.Navigation.PushAsync(page);
            return true;
        }
        catch
        {
            await Shell.Current.GoToAsync(Utilities.Routes.ErrorModalPage);
            return false;
        }
    }

Y las páginas tienen las propiedades estándar (ejemplo)

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage 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"
             mc:Ignorable="d"
             xmlns:ios="clr-namespace:Xamarin.Forms.PlatformConfiguration.iOSSpecific;assembly=Xamarin.Forms.Core"
             ios:Page.UseSafeArea="true"
             Visual="Material"
             x:Class="namespace:Thing.Views.AddPage"
             xmlns:converter="clr-namespace:Thing.Converters"
             xmlns:controls="clr-namespace:Thing.Controls"
             xmlns:utilities="clr-namespace:Thing.Utilities"
             >
    <ContentPage.Resources>
    <ResourceDictionary>
      <converter:IntToEnumConverter x:Key="IntToEnum"/>
      <converter:InverseBoolConverter x:Key="InverseBool"/>

    </ResourceDictionary>
  </ContentPage.Resources>
    <ContentPage.Content>
      <Grid>
        <Grid.RowDefinitions>
          <RowDefinition Height="2*"></RowDefinition>
          <RowDefinition Height="5*"></RowDefinition>
                <RowDefinition Height="1*"></RowDefinition>

           </Grid.RowDefinitions>

            <controls:PageHeader Grid.Row="0" ShowBackButton="true"
                           HeaderTitle="New Thing"
                HeaderImage="{x:Static utilities:Icons.AddMenuIcon}" 
                                 BackCommand="{Binding NavigateBackCommand}"/>

        <StackLayout Grid.Row="1">
          <Label Text="What do you want to call this?" Style="{StaticResource FormLabel}"/>
          <Entry Text="{Binding Name.Value}" Placeholder="E.g. My shiny thing"/> 
        </StackLayout>
        <StackLayout Grid.Row="2" Orientation="Horizontal">
          <Button HorizontalOptions="FillAndExpand" Text="Cancel" Command="{Binding NavigateBackCommand}"></Button>
          <Button HorizontalOptions="FillAndExpand" Text="Save" Command="{Binding SaveCommand}"></Button>
        </StackLayout>
      </Grid>
    </ContentPage.Content>
</ContentPage>
0
davidmasters 24 ago. 2020 a las 15:32

1 respuesta

La mejor respuesta

Tuve exactamente el mismo problema y la actualización a la última versión (4.8.1269) no ayudó. Parece que este problema se introdujo en 4.7.1260. Bajé la calificación a 4.7.1239 y todo está bien nuevamente.

0
Simon Spoon 27 ago. 2020 a las 18:56