Ausblenden softkeyboard in Xamarin

Wie Verstecke ich das softkeyboard für die Ansicht auf, wenn man sich ein Entry in Xamarin.Formen portable forms-Projekt? Ich nehme an, wir schreiben müssen Plattform-spezifische Renderer, aber der folgende Code funktioniert nicht:

Erstelle ich meinen eigenen Eintrag: Unterklasse:

public class MyExtendedEntry : Entry
{
}

und dann in die xamarin.android-Projekt mein renderer:

public class MyExtendedEntryRenderer : EntryRenderer
{
    protected override void OnElementChanged(ElementChangedEventArgs<Entry> e)
    {
        base.OnElementChanged(e);
        if (Control != null)
        {
            new Handler().Post(delegate
            {
                var imm = (InputMethodManager)Control.Context.GetSystemService(Context.InputMethodService);
                var result = imm.HideSoftInputFromWindow(Control.WindowToken, 0);
            });
        }
    }
}

Den OnElementChanged aufgerufen wird, wie erwartet, und bei der Verwendung von Handler.Post() ich bekomme auch ein WindowToken anstelle von null. Leider ist der Rückgabewert von HideSoftInputFromWindow ist immer falsch und das softkeyboard noch immer auftaucht, wenn Sie auf den Eintrag.

InformationsquelleAutor Voo | 2015-03-03
Schreibe einen Kommentar