Auf Android-Geräten, die Softtastaturen verwenden, möchte ich verhindern, dass die Vollbild-Tastaturbearbeitungsansicht (siehe unten) im Querformat angezeigt wird (dh ich möchte nur die Softtastatur selbst und meine Ansicht dahinter sehen).
Ich gehe davon aus, dass dies mit der setExtractViewShown(false)
Methode on erreicht werden kann, kann InputMethodService
jedoch nicht auf die Standardinstanz zugreifen und möchte keine benutzerdefinierte Eingabemethode implementieren.
Bearbeitet, um hinzuzufügen: Die Ansicht, in die die Eingabe geht, ist keine TextView
( View
mit einer benutzerdefinierten InputConnection
Implementierung), android:imeOptions="flagNoExtractUi"
funktioniert also hier nicht.
flagNoExtractUi
oderIME_FLAG_NO_EXTRACT_UI
. InIME_FLAG_NO_EXTRACT_UI
der entsprechenden Dokumentation für heißtflagNoExtractUi
es jedoch, dass "von der Verwendung dieses Flags abgeraten wird und es in Zukunft möglicherweise veraltet sein wird", ebensoflagNoFullscreen
wie die empfohlene Option.Antworten:
Ich habe endlich meine eigene Frage beantwortet:
Die Benutzeroberfläche zum Extrahieren (dh der Vollbild-Bearbeitungsmodus) kann an dem Punkt deaktiviert werden, an dem die Eingangsverbindung angeschlossen ist:
quelle
outAttrs.imeOptions |= EditorInfo.IME_FLAG_NO_EXTRACT_UI;
Navigieren Sie dazu zu Aktivität XML und fügen Sie
android:imeOptions="flagNoExtractUi"
Ihren Code ein. Aber wo soll es eingefügt werden? Schauen Sie sich den Code der Beispielaktivität xml an und schauen Sie sich EditText an:Weitere Anpassungsoptionen für die Tastatur finden Sie unter http://developer.android.com/guide/topics/ui/controls/text.html
quelle
Fügen Sie die Eigenschaft
android:imeOptions="flagNoExtractUi"
jedemEditText
in IhrerXML
Datei hinzu.quelle
Die obige Antwort hat mir geholfen, die Lösung für dynamisch hinzugefügte EditTexts zu finden:
quelle
Verwenden Sie
android:imeOptions="flagNoFullscreen"
diese Option , um diese Funktion zu erreichen.quelle
IME_FLAG_NO_EXTRACT_UI
, die entsprichtflagNoExtractUi
, angegeben ist, dass "die Verwendung dieses Flags nichtflagNoFullscreen
empfohlen wird und es in Zukunft möglicherweise veraltet sein wird", ebenso wie die empfohlene Option.Wenn Sie mehrere imeOptions programmatisch kombinieren möchten, können Sie auch | verwenden Syntax.
Um beispielsweise die Vollbild-Bearbeitungsansicht im Querformat zu deaktivieren und die Taste "Weiter" durch die Taste "OK" (ACTION_DONE) auf der Tastatur zu ersetzen, können Sie Folgendes verwenden:
quelle
Wenn Sie den IME direkt ändern, können Sie verhindern, dass jemals eine ExtractedView angezeigt wird, indem Sie Folgendes überschreiben
onUpdateExtractingVisibility
:quelle
Ich weiß , es ist ein wenig spät , aber für alle , die immer noch daran interessiert ist, hier ist meine Lösung: In meinem Fall hatte ich eine Landschaft Aktivität eine enthält EditText an der Spitze der es und ich brauchte Funktion zum automatischen Vervollständigung bei dieser Suche implementieren Aktivität , die die Überlappung Die Tastatur verursachte ein Problem, bei dem der Benutzer das Ergebnis von RecyclerView nicht sehen konnte . Also hatte ich diesen EditText in meinem Layout:
Prost!
quelle
Meine Lösung:
quelle
Sie können verwenden:
in deinem edittext
quelle
Sie können anrufen, um die Softtastatur auszublenden und den Fokus in der Suchansicht zu löschen.
quelle