Come far apparire tastiera Android nella casella di testo (fix focus)
A volte toccando una casella di testo (EditText) la tastiera non appare. Cause: bug app, WebView, focus perso, tastiera disabilitata, modalità schermo intero.
Soluzioni rapide
- Tieni premuto TASTO MENU (fisico) / tasto RECENTI (quadrato) / tasto INDIETRO per 1-2 secondi. Su molti telefoni forza apertura tastiera.
- Tocca di nuovo la casella (a volte serve doppio tap).
- Scorri su/giù la pagina (WebView/scrollview) per rifare focus.
- Chiudi e riapri tastiera: Tocca icona tastiera in barra navigazione (se visibile) o scorri da bordo basso (gesture navigation).
- Cambia campo: Tocca un'altra casella, poi torna a quella desiderata.
Soluzioni sistemiche
- Riavvia app: Recenti > scorri via app > riapri.
- Pulisci cache app: Impostazioni > App > [App] > Memoria > "Cancella cache".
- Aggiorna app / WebView: Play Store > Le mie app > Aggiorna / "Android System WebView" > Aggiorna.
- Verifica tastiera predefinita: Impostazioni > Sistema > Lingue e input > Tastiera virtuale / Tastiera predefinita > scegli Gboard, SwiftKey, Samsung Keyboard, ecc. Non "Nessuna" o tastiera rotta.
- Disabilita "Tastiera fisica" se non hai: Stessa schermata > "Mostra tasto input" / "Tastiera hardware" OFF.
Per sviluppatori (fix nel codice)
// In Activity/Fragment onResume o onViewCreated:
editText.requestFocus();
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT);
// In layout XML:
<EditText
android:id="@+id/editText"
android:focusable="true"
android:focusableInTouchMode="true"
android:inputType="text"
... />
// Manifest: android:windowSoftInputMode="adjustResize|stateVisible" per activity.
Tastiera non appare in browser (Chrome/WebView)
- Sito usa
inputmode="none"oreadonly/disabledsu campo. - Zoom disabilitato (
user-scalable=no) può interferire. - Prova: Menu Chrome > "Sito desktop" ON/OFF, ricarica.
- App alternative: "Firefox", "Kiwi Browser" (supporta estensioni desktop), "Brave".