Hai Ich kämpfe mit Tastaturproblem in Android, wenn ich jede Sache in Texteingabe eingeben möchte, zeigen Sie einige Vorschläge in der Tastatur, ich will diese Vorschläge nicht, Kann mir jemand helfen, wie diese Vorschläge zu vermeiden.
Jede Hilfe sehr geschätzt, das obige Bild von Nexus 6. Hier ist mein TextInput Code
%Vor%Im Zustand deklariere autoCorrect als falsch
Bei der Verwendung von autoComplete="false"
setzt der native React den zugrunde liegenden nativen Android-Eingabetyp auf TYPE_TEXT_FLAG_NO_SUGGESTIONS
und löscht TYPE_TEXT_FLAG_AUTO_CORRECT
und weist das System effektiv an, keine Vorschläge zu geben (siehe Quellcode ). Dies ist die empfohlene Methode zum Deaktivieren von Textvorschlägen für die Android-Referenzhandbücher .
Das Problem ist, dass einige (oder viele?) HTC-Geräte diese Einstellung nicht berücksichtigen. Aus meiner Recherche geht hervor, dass einige Samsung-Geräte dies möglicherweise nicht unterstützen. Es ist vernünftig anzunehmen, dass andere Hersteller diese Einstellung nicht respektieren werden - was ganz einfach nur scheiße ist. Das ist eines der großen Probleme mit Android - irgendwie haben sie nicht von Microsoft gelernt -, dass schmierige Hersteller die Zuverlässigkeit Ihrer Produkte zerstören werden und es Jahre dauert (ungefähr ein Jahrzehnt), um den Schaden </rant>
sogar rückgängig zu machen. (Hinweis: Ich bin ein Android-Fan).
Nach Daniels Antwort scheint jemand erfolgreich den Texttyp auf TYPE_TEXT_VARIATION_FILTER
eingestellt zu haben - was dem Gerät mitteilt, dass Ihre Eingabe zum Filtern einer Liste von Elementen verwendet wird. Lassen Sie uns versuchen, die vorhandene Texteingabe zu ändern und zu sehen, ob es funktioniert - dann können Sie unsere eigenen erstellen, wenn Sie möchten:
Sie müssen die Datei ReactTextInputManager.java
finden. Im Ordner React Native befindet sich der Pfad unter folgendem Pfad:
Um Zeile 378 finden Sie eine Methode namens setAutoCorrect
- aktualisieren Sie sie wie folgt:
Erstellen Sie Ihre App und testen Sie sie. Wenn es nicht funktioniert, versuchen Sie, beide Instanzen von InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS |
( einschließlich der Pipe ) aus dem obigen Code zu entfernen, und versuchen Sie es erneut. Wenn das nicht funktioniert, denke ich, dass du kein Glück hast.
Wenn es funktioniert, können Sie entweder a) jedem in Ihrem Team mitteilen, wie die reaktive native Komponente vor dem Erstellen geändert werden soll (hacky und unzuverlässig) oder b) Erstellen Sie Ihre eigene Texteingabekomponente. Sie sollten in der Lage sein, den vorhandenen TextInput-Code zu kopieren und einzufügen, und Sie sollten nicht viel nativen Code schreiben müssen - meistens nur Dinge umbenennen. Viel Glück.
Update: Gehen Sie weiter nach unten in das Kaninchenloch, Sie können auch die Einstellung TYPE_TEXT_VARIATION_VISIBLE_PASSWORD
ausprobieren. Also hier ist die Küchenspüle - ich nehme an, Sie können den Code gut genug lesen, um mit verschiedenen Kombinationen von Eingabearten zu spielen:
Es hilft zu verstehen, dass die Methodensignatur für updateStagedInputTypeFlag
die folgende ist:
Update 2: Es gibt viele "input type" -Flags, die Sie verwenden können, Eine vollständige Liste finden Sie hier . Fühlen Sie sich frei, andere zu probieren - Sie könnten auf einen stolpern, der funktioniert. Sie sollten den Code von meinem ersten Update oben ändern können.
Sie müssten Ihren eigenen Android TextView
-Wrapper schreiben, Damit wird der korrekte Eingabetyp festgelegt. Weitere Informationen zum Android-Teil finden Sie in diesem Stapelüberlauf.
Unser Fix / Hack bestand darin, einfach den Typ der Eingabe von Text zu E-Mail und zurück zu Text zu ändern.
Tags und Links react-native