Ho un controllo EditText. Se lo tocco, la softkey mostrerà popup quando premo "enter/ok/return", quindi il controllo EditText ha ancora il focus e la tastiera in alto.
Come chiudere il softkey e rimuovere la messa a fuoco da esso?Come disattivare la messa a fuoco e rimuovere la tastiera su Android?
risposta
Si potrebbe provare a fare SetFocus()
su un altro elemento nel proprio layout.
Se si sta parlando il tasto "invio/OK/ritorno" sulla tastiera stessa potrebbe essere necessario impostare una KeyListener
sul controllo EditText
al fine di sapere quando SetFocus()
su un altro elemento.
Nel file di layout XML, specificare un imeOption sul EditText:
android:imeOptions="actionGo"
Quindi, aggiungere un listener di azione per il tuo EditText nel file di java del Activity
mYourEditText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_GO) {
// hide virtual keyboard
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(mYourEditText.getWindowToken(), 0);
return true;
}
return false;
}
});
Dove mYourEditText è un EditText oggetto
Hmm grazie. ma non è adatto a scrivere l'imeOpt nel layout o nell'editoriale? e ho qualche errore su EditorInfo, qualche idea? – carefacerz
Puoi spiegare l'EditorInfo? – carefacerz
Questa operazione eliminerà la tastiera ma non rimuoverà la messa a fuoco in tutti i casi. IE Android richiederà la messa a fuoco sulla prima vista disponibile che può essere messa a fuoco. – lostintranslation
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(editTextField.getWindowToken(), 0);
Ciò nasconderà solo la tastiera. Non rimuoverà la messa a fuoco. – lostintranslation
private void hideDefaultKeyboard() {
activity.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
//you have got lot of methods here
}
Accertarsi che l'XML EditText ha:
android:id="@+id/myEditText"
android:imeOptions="actionDone"
Quindi impostare ascoltatore al vostro EditText (con Kotlin, e da un frammento):
myEditText.setOnEditorActionListener({ v, actionId, event ->
if (actionId == EditorInfo.IME_ACTION_DONE) {
myEditText.clearFocus()
val imm = activity.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
imm.hideSoftInputFromWindow(view!!.windowToken, 0)
}
false
})
- 1. Rimuovere la messa a fuoco programmaticamente?
- 2. Messa a fuoco della tastiera e messa a fuoco logica in WPF
- 3. Messa a fuoco tastiera rubata da Flash
- 4. Come interrompere la visualizzazione della tastiera software quando viene modificata la messa a fuoco (evento OnStart)
- 5. Come rimuovere la messa a fuoco automatica/popup della tastiera di un campo quando viene visualizzata la schermata?
- 6. Android: Ritrovare la messa a fuoco con SurfaceView
- 7. dimettersi tastiera quando si perde la messa a fuoco su uisearchbar
- 8. Fotocamera Android: messa a fuoco dell'obiettivo fissa
- 9. La messa a fuoco automatica di Android quando le modalità di messa a fuoco automatica continua non sono supportate
- 10. Messa a fuoco manuale in camera2, android
- 11. Impostazione della messa a fuoco su un oggetto ListBox interrompe la navigazione da tastiera
- 12. Come rendere la messa a fuoco di un UIView utilizzando il motore di messa a fuoco su Apple TV
- 13. Spy ++ e Windows chiusi quando perdono la messa a fuoco
- 14. Qual è la differenza tra: messa a fuoco e: attivo?
- 15. Come disabilitare la messa a fuoco immediata in TextInputLayout?
- 16. Rimuovere o disattivare il bordo di messa a fuoco del browser tramite javascript
- 17. WPF e messa a fuoco iniziale
- 18. Come modificare automaticamente la messa a fuoco sull'elemento successivo dell'elenco
- 19. Come impostare la messa a fuoco automatica solo in xaml?
- 20. Nascondi tastiera quando si perde la messa a fuoco off UISearchBar
- 21. Android focalizzabile e messa a fuoco in modalità touch
- 22. UITextField perde l'evento di messa a fuoco
- 23. Impedire la messa a fuoco delle finestre Python
- 24. Determinazione della messa a fuoco in SWT
- 25. Spinner non viene messa a fuoco
- 26. Crea osservatore di eventi per la messa a fuoco?
- 27. Android Rimuovi tastiera morbida quando si tocca la listview
- 28. Messa a fuoco permanente per la finestra degli strumenti
- 29. Come delegare l'evento di messa a fuoco?
- 30. Disabilita la messa a fuoco automatica della webcam in Linux
Capisco che questa è la soluzione data da molte persone, ma Non mi piace, perché invece di input.clearFocus() semplicemente funziona (es liberando l'attenzione da quell'input), ora devi mettere a fuoco qualcos'altro !? Sembra solo contro-intuitivo. – marienke