Die Navigationsanimation flackert und zeigt beim ZurĂŒcknavigieren in einer Shell-Anwendung kurz einen schwarzen Bildschirm an.
Navigieren Sie zurĂŒck.
Flackere nicht.
Flackern.
Zeitlupenvideo des Problems: https://i.imgur.com/bWAVzgY.mp4
Eine vorĂŒbergehende Problemumgehung, wenn Sie einen Override durchfĂŒhren, ohne Animation gibt es kein Flackern!
protected override bool OnBackButtonPressed()
{Current.Navigation.PopAsync(false); return true;}
Hey @ z07713! Vielen Dank fĂŒr den Bericht und das HinzufĂŒgen des Videos sowie eine Problemumgehung! GroĂartige Arbeit đ
Könnten Sie vielleicht auch ein kleines Reproduktionsprojekt zusammenstellen, um auszuschlieĂen, dass dies durch einen anderen Code als das einfache Navigieren verursacht wird?
Haben Sie dies auch unter iOS versucht und das Gleiche gesehen? Oder nicht auf iOS ausprobiert?
Vielen Dank!
Hey @ z07713! Vielen Dank fĂŒr den Bericht und das HinzufĂŒgen des Videos sowie eine Problemumgehung! GroĂartige Arbeit đ
Könnten Sie vielleicht auch ein kleines Reproduktionsprojekt zusammenstellen, um auszuschlieĂen, dass dies durch einen anderen Code als das einfache Navigieren verursacht wird?
Haben Sie dies auch unter iOS versucht und das Gleiche gesehen? Oder nicht auf iOS ausprobiert?
Vielen Dank!
Hey @jfversluis , danke fĂŒr die Antwort, hier ist der Repro, um den Sie gebeten haben: https://drive.google.com/open?id=1WkGh6QwTOP380gX4RrRsksSGBoJNWeuc
AuĂerdem habe ich dies weder unter IOS ausprobiert, noch habe ich die Möglichkeit dazu. Ich besitze keinen Mac.
Super , danke
Sehen Sie dies auf jeden Fall, danke fĂŒr den Repro.
Es könnte erwÀhnenswert sein, dass die Problemumgehung
protected override bool OnBackButtonPressed() {Current.Navigation.PopAsync(false); return true;}
Funktioniert nur, wenn es im Code hinter AppShell.xaml angewendet wird, und funktioniert nicht, wenn es auf separaten Seiten platziert wird. Ich denke, das bezieht sich auf 7072
Als Arbeitsplatz kann das Ăberschreiben von OnPopAsync
von ShellSection
zum Deaktivieren der Animation gezielter sein.
public class CustomShellSection : ShellSection
{
protected override Task<Page> OnPopAsync(bool animated)
{
return base.OnPopAsync(false); // ignore the parameter
}
}
@jfversluis fĂŒr mich scheint dies unter iOS (13.3) korrekt zu funktionieren.
Das Deaktivieren der Animation ist fĂŒr uns keine Option und wir haben gerade unsere Veröffentlichung abgeschlossen. Wir mĂŒssen auf 4.3 zurĂŒcksetzen, was schlecht ist, da dadurch einige Fehler, hauptsĂ€chlich in der Shell und im Karussell, wieder geöffnet werden.
Wir werden wahrscheinlich einige Funktionen deaktivieren und ohne sie veröffentlichen mĂŒssen, was traurig ist, wenn man bedenkt, wie lange wir daran gearbeitet haben.
Gibt es eine Problemumgehung auĂer dem Deaktivieren der Animation?
Gibt es eine Chance, dass dies vor dem 16. Januar gelöst wird? WĂ€re groĂartig. Vielen Dank.
Beachten Sie, dass die PopModal-Animation das Problem nicht aufweist.
Tut mir leid das @jonx zu hören. Selbst wenn wir es vor dem 16. Januar reparieren wĂŒrden, ist es unwahrscheinlich, dass es Teil eines NuGet sein wird, das wir bis dahin veröffentlichen. Wenn dies etwas ist, das Ihre Veröffentlichung blockiert, wĂŒrde ich nicht auf diese Option wetten. Das tut mir leid.
Es ist okay @jfversluis , ich verstehe, danke fĂŒr deinen Kommentar. Wir mĂŒssen nur unsere Veröffentlichung verzögern.
@ z07713 gibt es eine Möglichkeit fĂŒr Sie, Ihr Beispiel erneut zu teilen. Ich kann nicht mehr auf Ihre Links zugreifen. Ich wĂŒrde gerne sehen, ob es wirklich das gleiche Problem ist, das ich habe, weil ich fĂŒr mich kurz einen anderen Bildschirm meiner App anstelle eines schwarzen Bildschirms sehen kann (im Kontext eines Assistenten; wenn ich die aktuelle Seite einblende, Ich sehe kurz die erste Seite meines Assistenten. Vielen Dank.
@jfversluis hĂ€tten Sie eine Vorstellung davon, welche Ănderung in 4.4 dieses Problem eingefĂŒhrt hat? Ich wĂŒrde gerne sehen, ob es eine Möglichkeit gibt, das Problem vorĂŒbergehend zu umgehen. Vielen Dank.
Ich habe auf 4.3.991250 heruntergestuft und habe immer noch das Problem, nur ein bisschen weniger offensichtlich (weil es schneller ist - schneller, nehme ich an). Ich werde weitere Tests durchfĂŒhren, wenn @ z07713 sein Beispiel
@jonx los geht's: https://drive.google.com/open?id=19apVlQS0TafFeBT16aCfzvtvCwcweVgS
AuĂerdem sind 4.3.0.991211 Formulare installiert: /
Ich habe auch dieses Problem. Ich habe versucht, die Linie zu setzen:
protected override bool OnBackButtonPressed () {Current.Navigation.PopAsync (false); return true; }}
in meiner appShell.xaml.cs und das Blinken ist noch vorhanden. Wenn mir jemand helfen könnte, die Arbeit zu verstehen ... Das wĂ€re groĂartig!
Wir haben auch das gleiche Problem, es ist ziemlich Àrgerlich, wenn Sie die Shell mit Animationen verwenden möchten. : |
Ich habe auch das gleiche Problem, und auch die Problemumgehung hat bei mir nicht funktioniert. Ich habe das Feedback von den Benutzern erhalten, dass dies ziemlich unangenehm aussieht, daher mĂŒssen wir die EinfĂŒhrung unserer App verzögern, bis dies behoben ist.
Wann wird der Fehler behoben?
Ich habe das gleiche Problem in Windows UWP, wenn ich mit Navigation.PushAsyc(<Page Object>,false)
zur Inhaltsseite navigiere
Irgendeine Problemumgehung dafĂŒr?
@jfversluis irgendein Update dazu?
@ z07713 Ich fĂŒrchte noch nicht, sorry! Haben Sie zufĂ€llig neue Erkenntnisse darĂŒber entdeckt, die uns helfen könnten?
Das Xamarin-Team lĂ€sst also ein flackerndes Problem, das UX absolut zerstört, monatelang im Repo sein. Das ist verrĂŒckt fĂŒr mich. Ich bin derzeit mit diesem Problem konfrontiert und bedauere, dass ich nicht einheimisch geworden bin, da ich beim Navigieren in meiner eigenen App Kopfschmerzen bekomme.
@jfversluis Ich habe einige Tests durchgefĂŒhrt, hoffe, das hilft euch dabei, den Fehler zu finden:
FĂŒr die Reproduktion habe ich die Standardvorlage von Visual Studio verwendet, die Xamarin Forms 4.3.0.908675 verwendet
Ich habe den Code nicht geÀndert. Kein Flackern in der Standardvorlagen-App.
Danach habe ich das Xamarin Forms-Paket auf 4.3.0.947036 aktualisiert
Keine Ănderungen am Code. Das Flackern erscheint nicht im Emulator, sondern nur auf einem echten Android-GerĂ€t (in meinem Fall Samsung Galaxy A40), es erscheint auch nicht auf iOS Simulator oder iPhone 8.
Es muss also eine Ănderung zwischen diesen beiden Versionen geben, die das Flackern verursacht.
Genial! @AndreasLichtsinn
@jfversluis Das einzige, was es zu erwÀhnen gilt, ist, dass wir die Verwendung von Shell aus diesem Grund komplett eingestellt haben: /
Vielen Dank fĂŒr Ihre Untersuchung zu diesem @AndreasLichtsinn! Sehr wertvolle Informationen :)
Eine weitere Sache habe ich fĂŒr das Blink-Problem gefunden.
Wenn ich eine Shell-App mit der Vorlage erstelle und die Navigation (im Code hinter der ItemsPage) von "Navigation.PushAsync (new ItemDetailPage ())" in "Shell.Current.GoToAsync (" itemDetailPage ", false) Ă€ndere ", dann sehe ich das Blinken auf dem Android-GerĂ€t. Ich habe dies auf den Originalversionen 4.3.xxx und 4.5.xxx von Xamarin.Forms ĂŒberprĂŒft.
Um ehrlich zu sein, obwohl es einige Navigationsprobleme bei der Shell-Navigation gibt (wie die einzige Navigation von Seite zu Seite, den Parameter-Pass usw.), blockiert dieser Fehler tatsÀchlich meine Version und macht Shell völlig unbrauchbar. Also bitte den Fehler so schnell wie möglich beheben !!!
Guten Morgen, ich habe die gleichen Probleme wie oben beschrieben. Ich wĂŒrde gerne wissen, ob eine Lösung in Sicht ist.
Gleiche Probleme hier. Das Deaktivieren der Animation sehe ich nicht wirklich als Problemumgehung an, zumal es mit dem Back Button Pop keine einfache Möglichkeit gibt, dies zu tun.
Ich hoffe das wird schnell behoben!
Ich kann bestÀtigen, dass in Version 4.3.0.90867 kein Blinken auftritt.
Die obige Version wurde nicht getestet, das Problem besteht jedoch weiterhin in Version 4.5.0.356
Das Problem besteht in der letzten stabilen Version weiterhin.
Gleiche Probleme hier. Das Deaktivieren der Animation sehe ich nicht wirklich als Problemumgehung an, zumal es mit dem Back Button Pop keine einfache Möglichkeit gibt, dies zu tun.
Ich hoffe das wird schnell behoben!
@kevinjpetersen Dies wird nur passieren, wenn Sie es so
dein bestes schnell! Das Problem besteht darin, die Ergebnisse von Version 4.3.0.90867 auszuprobieren.
Weitere Informationen: Der Fehler wird in diesem Commit eingefĂŒhrt: https://github.com/xamarin/Xamarin.Forms/commit/2b4ccdc88f8db7a2a0b78a1adf3428125eb677b5
Es sieht so aus, als wĂŒrde ich diese Zeile auskommentieren:
https://github.com/xamarin/Xamarin.Forms/blob/1532d46f5fb6f219594015b80f8e5a2476512882/Xamarin.Forms.Core/Shell/ShellSection.cs#L499
dann gibt es kein blinken.
Jemand könnte das untersuchen, der mehr Erfahrung hat als ich ...
Ich habe dies getestet und wenn ich zuerst die Seite entferne und dann die Navigation aufrufe, ist es in Ordnung - kein Blinken.
Ăndere das:
_navigationRequested?.Invoke(this, args);
if (args.Task != null)
await args.Task;
RemovePage(page);
dazu:
RemovePage(page);
_navigationRequested?.Invoke(this, args);
if (args.Task != null)
await args.Task;
@tdamir sehr guter Fund!
Wenn Sie angeben , dass Ihre Feststellung ist , besteht das Problem darin, dass args.Task
erwartet wird, was wahrscheinlich auf einen Kontextwechsel von UI-Thread-UI zurĂŒckzufĂŒhren ist.
Die Aufgabe wird immer erwartet
obwohl auf Android das args.Task
in dieser Methode immer ein Task.FromResult(...)
https://github.com/xamarin/Xamarin.Forms/blob/7a52542d50797ccc69ae1d8dd84259190d96bdb4/Xamarin.Forms.Platform.Android/Renderers/ShellItemRendererBase.cs#L134
aber denke, ein gefundener wahrscheinlicherer Schuldiger
https://github.com/xamarin/Xamarin.Forms/blob/7a52542d50797ccc69ae1d8dd84259190d96bdb4/Xamarin.Forms.Platform.Android/Renderers/ShellItemRendererBase.cs#L252 -L259
es Àndert die Hintergrundfarbe bei der Navigation (nicht sicher, ob immer)! Warum?
Es scheint auch, dass das Blinken nur in einem Tab auftritt.
Es gibt viel zu testen.
Tolle Arbeit @tdamir und @ahmedalejo! :) :)
@ahmedalejo Coole Fidings! Ich möchte nur sagen, dass es nicht nur Tabs sind. Ich habe das gleiche Flackern und alles, was ich habe, ist dies in meiner AppShell (auch bekannt als no TabBar):
<?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:views="clr-namespace:MyApp.Views"
mc:Ignorable="d"
Title="MyApp"
Visual="Material"
Shell.BackgroundColor="{StaticResource JFBlack}"
Shell.TitleColor="{StaticResource JFWhite}"
Shell.ForegroundColor="{StaticResource JFWhite}"
FlyoutBehavior="Disabled"
Shell.TabBarIsVisible="False"
x:Class="MyApp.AppShell">
<ShellContent Route="login">
<views:LoginPage />
</ShellContent>
<ShellContent Route="overview">
<views:OverviewPage />
</ShellContent>
</Shell>
@ahmedalejo Ja, der Farbwechselteil ist komisch, aber wenn ich ihn entferne, blinkt er immer noch.
Es sieht so aus, als ob https://github.com/xamarin/Xamarin.Forms/blob/1532d46f5fb6f219594015b80f8e5a2476512882/Xamarin.Forms.Core/Shell/ShellSection.cs#L499 vor dem Navigieren aufgerufen werden muss.
Hallo @PureWeen und @rmarinho
HĂ€tten Sie eine Idee, warum Sie unten SendAppearanceChange()
anrufen?
https://github.com/xamarin/Xamarin.Forms/blob/1532d46f5fb6f219594015b80f8e5a2476512882/Xamarin.Forms.Core/Shell/ShellSection.cs#L499
lÀsst das Knallen blinken?
Könnte jemand eine Problemumgehung empfehlen?
Die Lösung mit
protected override bool OnBackButtonPressed()
{
Current.Navigation.PopAsync(false); return true;
}
funktioniert nicht.
Ich habe die Problemumgehung gefunden (danke an https://github.com/xamarin/Xamarin.Forms/issues/8581#issuecomment-569583965).
public class CustomTab : Tab
{
protected override Task<Page> OnPopAsync(bool animated)
{
// temporary workaround while https://github.com/xamarin/Xamarin.Forms/issues/8581 not fixed
return base.OnPopAsync(animated: false);
}
}
Verwenden Sie dann das CustomTab in XAML.
Das folgende Update funktioniert nur mit der Hardware-Navigationstaste (und nicht in anderen FĂ€llen der RĂŒcknavigation):
protected override bool OnBackButtonPressed()
{
Current.Navigation.PopAsync(false); return true;
}
Danke @pfedotovsky Ich hatte eine Ahnung, dass es auch mit der Tab-Navigation zu tun haben könnte.
Das passiert uns auch, seit 4.3 gibt es das Flimmern auf Android.
Ich habe gerade festgestellt, dass dieser Fehler anlÀsslich des einjÀhrigen JubilÀums der [Shell] -Navigation auftritt - flackert # 5755
Das gleiche Problem hier beim Goback, flackernder Bildschirm.
Zum Beispiel:
https://github.com/mallibone/ShellLoginSample
Vielen Dank fĂŒr die Erkundung @ahmedalejo, die es sehr einfach gemacht hat, diese zu finden und zu reparieren
Sobald der Build abgeschlossen ist, wenn jemand die Nugets testen möchte und mich wissen lÀsst, ob das Problem behoben ist, wÀre dies hilfreich
https://dev.azure.com/xamarin/public/_build/results?buildId=16155&view=results
Ich habe das Nuget mit der Xaminals-Probe getestet
https://github.com/xamarin/Xamarin.Forms/issues/6294
Und mit diesem Nuget tritt das Flackern nicht mehr auf
@PureWeen Ok, also habe ich einen Test gemacht:
Ich habe eine neue Shell-Beispiel-App mit Xamarin Forms 4.3.0.908675 erstellt -> Kein Flackern
Dann habe ich auf den neuesten stabilen 4.5.0.495 aktualisiert -> Flackern
Dann habe ich auf Ihre neueste Version 4.6.0.1693 aktualisiert -> Kein Flackern
Gute Arbeit! Ich hoffe, andere können dies bestÀtigen.
@PureWeen Ok, also habe ich einen Test gemacht:
Ich habe eine neue Shell-Beispiel-App mit Xamarin Forms 4.3.0.908675 erstellt -> Kein Flackern
Dann habe ich auf den neuesten stabilen 4.5.0.495 aktualisiert -> Flackern
Dann habe ich auf Ihre neueste Version 4.6.0.1693 aktualisiert -> Kein FlackernGute Arbeit! Ich hoffe, andere können dies bestÀtigen.
@AndreasLichtsinn kann Xamarin Forms 4.6.0.1693 nicht finden
@PureWeen Ok, also habe ich einen Test gemacht:
Ich habe eine neue Shell-Beispiel-App mit Xamarin Forms 4.3.0.908675 erstellt -> Kein Flackern
Dann habe ich auf den neuesten stabilen 4.5.0.495 aktualisiert -> Flackern
Dann habe ich auf Ihre neueste Version 4.6.0.1693 aktualisiert -> Kein FlackernGute Arbeit! Ich hoffe, andere können dies bestÀtigen.
@AndreasLichtsinn Ich kann den 1693 Build auch nicht finden! Auch die 4.7.0.531-Nacht flackert noch: /
@angelru @RsZoli Es ist in den veröffentlichten Artefakten, die PureWeen gepostet hat
@angelru Danke fĂŒrs Testen !!!!
@angelru Danke fĂŒrs Testen !!!!
@PureWeen Ich konnte nicht testen, ich kann nicht herunterladen
Oh du hast @AndreasLichtsinn zitiert :-)
Danke @AndreasLichtsinn fĂŒrs Testen !!!
@angelru
Zum Link gehen:
https://dev.azure.com/xamarin/public/_build/results?buildId=16155&view=results
Klicke hier:
Dann hier:
Entpacken Sie dann die Zip-Datei und erstellen Sie eine lokale Nuget-Paketquelle in diesem Ordner:
WĂ€hlen Sie dann diese lokale Paketquelle und installieren Sie sie von dort:
@angelru
Zum Link gehen:
https://dev.azure.com/xamarin/public/_build/results?buildId=16155&view=results
Klicke hier:
Dann hier:
Entpacken Sie dann die Zip-Datei und erstellen Sie eine lokale Nuget-Paketquelle in diesem Ordner:
WĂ€hlen Sie dann diese lokale Paketquelle und installieren Sie sie von dort:
Vielen Dank!!! Es klappt!
Ich kann bestÀtigen, dass Xamarin Forms 4.6.0.1693 kein Flimmern aufweist.
Vielen Dank!
geschlossen von # 10158
Ich habe das gleiche Problem mit den neuesten Xamarin-Formularen 4.8. Ich habe festgestellt, dass unter iOS die Seiten mit Beschriftungen mit TextType = 'Html' das Problem verursachen ...
Ich habe eine neue Ausgabe eröffnet. # 12385
Hilfreichster Kommentar
Ich habe das Nuget mit der Xaminals-Probe getestet
https://github.com/xamarin/Xamarin.Forms/issues/6294
Und mit diesem Nuget tritt das Flackern nicht mehr auf