È possibile controllare la tastiera da WebView, ma poiché altre risposte suggeriscono che potrebbe non funzionare con tutte le tastiere mai create. Nonostante ciò, in genere trovo che la maggior parte delle tastiere tradizionali abbia implementato il comportamento che voglio.
La WebView ha un metodo chiamato onCreateInputConnection
. È possibile collegare questo metodo e aggiungere (e/o rimuovere) contrassegni allo inputType
e/o imeOptions
. Ci sono molte bandiere a tua disposizione.
Controllare le opzioni EditorInfo, in particolare IME_FLAG_NAVIGATE_NEXT e IME_FLAG_NAVIGATE_PREVIOUS. Vedi l'utilizzo al di sotto (che rimuove le PREV/NEXT bandiere dalle opzioni di tastiera):
@Override
public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
InputConnection inputConnection = super.onCreateInputConnection(outAttrs);
outAttrs.imeOptions = outAttrs.imeOptions & ~EditorInfo.IME_FLAG_NAVIGATE_NEXT &
~EditorInfo.IME_FLAG_NAVIGATE_PREVIOUS;
return inputConnection;
}
Un'altra cosa che si potrebbe provare è quello di nascondere l'intera barra suggerimenti utilizzando i InputType bandiere TYPE_TEXT_FLAG_NO_SUGGESTIONS
. Vedere l'esempio di seguito (che aggiunge il flag "nessun suggerimento" per il tipo di ingresso):
@Override
public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
InputConnection inputConnection = super.onCreateInputConnection(outAttrs);
outAttrs.inputType = outAttrs.inputType | InputType.TYPE_TEXT_FLAG_NO_SUGGESTIONS;
return inputConnection;
}
Ci sono molte altre flag disponibili per avere un gioco con per personalizzare l'IME direttamente dal WebView. Riferisci lo sviluppatore alle pagine collegate e dovresti essere in grado di ottenere il comportamento che cerchi sulla maggior parte delle tastiere.
fonte
2014-05-04 23:18:03
Grazie Gabe.C'è qualcosa che posso dire allo sviluppatore Android di provare dalla loro parte per quanto riguarda questo? – artlung
Sarebbe complicato farlo. A causa di tutte le tastiere, in pratica non sai quale usa un utente. In teoria, se tutte le tastiere di terze parti fossero codificate in modo simile, potresti persino chiedere loro di provare ad analizzare l'html per i tag "" e lasciare che applichino le opzioni IME per la tastiera in un override. Ma un successo non è garantito con questo metodo. – StingRay5