Domanda
Quando si usa l' SDK per Chat, a volte se esco dall'attività di chat durante la digitazione, la tastiera rimane aperta e devo chiuderla manualmente. Come posso evitarlo?
Risposta
Quando ciò si verifica, la soluzione più semplice è chiudere forzatamente la tastiera ogni volta che si torna all'attività principale nell'interfaccia utente di Chat.
Nell'esempio seguente, MainActivity sta avviando l'interfaccia utente di Chat. Questa sarà l'attività a cui tornerai una volta chiusa l'interfaccia utente della chat. In questo esempio, lo script crea un metodo in cui MainActivity nasconde la tastiera all'avvio della vista. Guarda l'esempio di codice in Kotlin qui sotto.
class MainActivity : AppCompatActivity() {
private fun hideKeyboard() {
val view = currentFocus ?: View(this)
val inputMethodManager = getSystemService(Activity.INPUT_METHOD_SERVICE) as InputMethodManager
inputMethodManager.hideSoftInputFromWindow(view.rootView.windowToken, 0)
inputMethodManager.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0)
view.clearFocus()
}
override fun onStart() {
super.onStart()
if (Chat.INSTANCE.providers()?.connectionProvider()?.connectionStatus == ConnectionStatus.DISCONNECTED) {
hideKeyboard()
}
}
}
Assicurati di controllare connectionStatus
sul onStart
richiamata dell'attività e vedere se la chat è in stato ConnectionStatus.DISCONNECTED
, il che significa che MessagingActivity
viene ignorato e l'integratore può hideKeyboard
.
Avvertenza sulla traduzione: questo articolo è stato tradotto usando un software di traduzione automatizzata per fornire una comprensione di base del contenuto. È stato fatto tutto il possibile per fornire una traduzione accurata, tuttavia Zendesk non garantisce l'accuratezza della traduzione.
Per qualsiasi dubbio sull'accuratezza delle informazioni contenute nell'articolo tradotto, fai riferimento alla versione inglese dell'articolo come versione ufficiale.