Ich habe ein EditText-Widget in meiner Ansicht. Wenn der Benutzer das EditText-Widget auswählt, werden einige Anweisungen angezeigt und die Softtastatur wird angezeigt.
Ich verwende einen OnEditorActionListener, um zu erkennen, wann der Benutzer die Texteingabe abgeschlossen hat, und ich entlasse die Tastatur, verstecke die Anweisungen und führe eine Aktion aus.
Mein Problem ist, wenn der Benutzer die Tastatur durch Drücken der Taste ZURÜCK schließt. Das Betriebssystem schließt die Tastatur, aber meine Anweisungen (die ich ausblenden muss) sind immer noch sichtbar.
Ich habe versucht, OnKeyDown zu überschreiben, aber das scheint nicht aufgerufen zu werden, wenn die Taste BACK zum Schließen der Tastatur verwendet wird.
Ich habe versucht, einen OnKeyListener im EditText-Widget festzulegen, aber das scheint auch nicht aufgerufen zu werden.
Wie kann ich erkennen, wann die Softtastatur geschlossen wird?
onKeyPreIme
? Oder gibt es einen bestimmten Grund dafür, dass es nicht so ist?SearchView
, lesenJay, deine Lösung ist gut! Vielen Dank :)
quelle
KeyEvent.ACTION_UP
?android.support.v7.widget.AppCompatEditText
zum Abtönen verlängern.AppCompatEditText
für AndroidXIch habe Jays Lösung leicht geändert, indem ich super.onKeyPreIme () aufgerufen habe:
Wunderbare Lösung, Jay, +1!
quelle
Hier ist mein benutzerdefinierter EditText, um festzustellen, ob die Tastatur angezeigt wird oder nicht
quelle
Es ist jetzt 2019 ...
Also habe ich mit Kotlin eine ordentlichere Lösung geschaffen
1.Erstellen Sie eine Erweiterungsfunktion:
2.Wo sich der Toggle-Listener befindet:
3. Verwenden Sie es in einer so einfachen Aktivität :
quelle
Erstellen Sie einfach eine Klasse, die Edittext erweitert, und verwenden Sie diesen Edittext in Ihrem Code. Sie sollten lediglich die folgende Methode im benutzerdefinierten Edittext überschreiben:
quelle
Hier ist eine Lösung mit dem Key Listener. Ich habe keine Ahnung, warum dies funktioniert, aber OnKeyListener funktioniert, wenn Sie onKeyPreIme in Ihrem benutzerdefinierten EditText nur überschreiben.
SomeClass.java
CustomEditText.java
quelle
Mit der Antwort von @ olivier_sdg, aber konvertiert nach Kotlin:
Verwendung:
quelle
Für alle, die dasselbe in Xamarin tun möchten, habe ich einige der wichtigsten Antworten übersetzt, da es etwas anders ist. Ich habe hier einen Kern erstellt , aber zusammenfassend erstellen Sie einen benutzerdefinierten EditText und überschreiben ihn
OnKeyPreIme
wie folgt :... und dann in der Ansicht ...
quelle
hideSoftInputFromWindow
Gibt true zurück, wenn die Tastatur geschlossen wird. Verwenden Sie den Wert, um das Schließen der Tastatur in Android zu erkennenquelle