Xamarin forms DisplayAlert nicht angezeigt, wenn der Aufruf aus einer Funktion, die aufgerufen wird, die von einer Stellvertretung
Wenn ich rufe GRÜßEN aus dem inneren der size-Funktion DisplayAlert wird eine Warnung angezeigt, wie erwartet, Jedoch, wenn es heißt, die aus den Delegierten, nachdem ein Ereignis protokolliert werden, um die Ausgabe mit dem korrekten Namen (GRÜßEN Aufgerufen wurde), aber die DisplayAlert nicht zeigen.
public class CustomPage : ContentPage
{
...
protected override void OnValidSizeAllocated(double width, double height)
{
...
Greet("Test");
app.FB.GetName();
app.FB.NameRecieved += (s,e) =>
{
Greet(e.Name);
};
}
public void Greet(string name)
{
Utils.Log("Hey " + name);
DisplayAlert("Hey " + name, "Welcome", "OK");
}
}
Der obige Code gibt "Hey Test" und dann eine Warnung kommt sagen: "Hey, Test, herzlich Willkommen" mit einem " OK " - Taste, dann gibt es "Hey Leo" (ist das so richtig, weil das die Namen aus dem Facebook-Konto), aber dann keine Warnung zeigt.
- Sie (vermutlich) brauchen, um Kraft DisplayAlert für die Ausführung auf dem UI-Thread. Versuchen Sie es mit Gerät.BeginInvokeOnMainThread()
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist NameReceived gefeuert innen GetName Funktion?
Vielleicht müssen Sie setzen die app.FB.GetName() nach dem "+ = { ... }; " - block.
Wenn nameReceived ist richtig gefeuert, vielleicht GRÜßEN läuft nicht auf ui-thread,
versuchen Sie, wickeln Sie Ihre Anzeige-code in
beschrieben hier
Warum gehst du nicht erstellen Sie eine
PageBase
Klasse, dieDisplayAlert
und wickelt es inBeingInvokeOnMainThread
so dass Sie nicht haben, um neu zu schreiben: