Ho una vista di autocompletetext che ho collegato a un servizio web, quindi mi mostra suggerimenti mentre scrivo. Ora, come posso nascondere la tastiera virtuale quando l'utente inizia a scorrere il menu a tendina del completamento automatico? Ho guardato attraverso la rete, ma non ho trovato alcun metodo per individuare i tocchi sul menu a discesa di completamento automatico.Chiudi la tastiera durante lo scorrimento nel menu a discesa su autocompletetextview in Android
risposta
Se ho capito bene, vuoi che la tastiera scompaia perché lascerebbe più spazio per il tuo elenco a discesa? Forse questo è legato:
Scrolling drop-down-menu over the keyboard in autocompletetextview
La soluzione migliore che potessi venire per questo, si nasconde la tastiera quando l'utente inizia a scorrere la lista e mostrando di nuovo la tastiera, se l'utente tocca il TextView di nuovo. Questo praticamente funziona per la maggior parte delle versioni e dei dispositivi del sistema operativo, a differenza di altre soluzioni che potresti vedere, come ad esempio l'impostazione dell'altezza di dropDownHeight.
Di seguito è riportato un codice di esempio per nascondere la tastiera, quando l'utente inizia a scorrere. Fondamentalmente, devi creare un ascoltatore touch nell'adattatore AutoCompleteTextView.
public View getView(final int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
ViewHolder holder;
if (convertView == null) {
convertView = inflater.inflate(viewResourceId, parent, false);
holder = new ViewHolder();
init(convertView, holder);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
convertView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
InputMethodManager imm = (InputMethodManager) getContext()
.getSystemService(
Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(
searchView.getWindowToken(), 0);
}
return false;
}
});
setView(position, holder);
return convertView;
}
geniale !!!!! – Netero
L'aggiunta di questa linea in XML funziona bene per me
Questo renderà la tastiera dietro la lista a scorrimento.
android:dropDownHeight="wrap_content"
vorrei prendere questa risposta, o la risposta di @ ayorhan come risposta accettata, è davvero il modo migliore per gestire respingendo la tastiera quando si scorre una selezione a discesa.
Questa è una soluzione di playoff @ ayorhan, da utilizzare con SimpleCursorAdapter. Ho dovuto fare una classe SimpleCursorAdapter personalizzato:
public class SimpCursAdap extends SimpleCursorAdapter {
public SimpCursAdap(Context context, int layout, Cursor c, String[] from, int[] to, int flags) {
super(context, layout, c, from, to, flags);
}
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
view.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
InputMethodManager imm = (InputMethodManager) getContext()
.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(
view.getApplicationWindowToken(), 0);
}
return false;
}
});
return view;
}
}
Quindi è possibile creare un'istanza della classe ovunque:
final SimpleCursorAdapter adapter = new SimpCursAdap(aContext,
aRowLayout,
null,
aColNames,
aRowViewsIds,
0);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
adapter.setStringConversionColumn(aValueColId);
autocompletetextview.setAdapter(adapter);
- 1. Come faccio a interrompere il menu a discesa AutoCompleteTextView dallo scorrimento su AutoCompleteTextView?
- 2. Come personalizzare il menu a discesa AutoCompleteTextView su Android
- 3. Menu a discesa Bootstrap nel menu a discesa
- 4. Disattiva Android AutoCompleteTextView dopo che l'utente seleziona l'elemento dal menu a discesa
- 5. Android: AutoCompleteTextView nascondi tastiera virtuale
- 6. Previene lo scorrimento quando il mouse entra nel menu a discesa WPF ComboBox
- 7. Codice PHP: set_value nel menu a discesa
- 8. AutoCompleteTextView evento click su Android
- 9. Scorrimento del menu a discesa sulla tastiera nella vista del prospetto automatico
- 10. Jquery Disattiva opzione nel menu a discesa
- 11. Menu a discesa Bootstrap nel posto sbagliato
- 12. Menu a discesa Android (senza spinner!)
- 13. bootstrap rimuove la freccia verso l'alto nel menu a discesa
- 14. La tastiera virtuale non attiva lo scorrimento in ScrollView
- 15. Menu a tendina personalizzati/menu a discesa
- 16. Hammer js - Chiudi menu scorri verso destra - scorrimento verticale interferente
- 17. La barra delle azioni mostra il menu a discesa quando solo un elemento nel menu
- 18. scrollTo durante lo scorrimento
- 19. Menu a discesa ActionBar Styling
- 20. Abilitazione della navigazione da tastiera nel menu a tendina Bootstrap
- 21. Chiave UIBackgroundModes non visualizzata nel menu a discesa Info.plist
- 22. html css menu a discesa
- 23. Typeahead - menu a discesa scorrevole.
- 24. Albero JSF in un menu a discesa
- 25. Lo scorrimento della tastiera fa spostare UIWebView a sinistra
- 26. WPF Style Combobox con due colonne nel menu a discesa
- 27. Come arrivare elemento selezionato nel menu a discesa bootstrap, in cui discesa è dinamicamente popolato
- 28. Campo di input Bootstrap nel menu a discesa con AngularJS
- 29. Come posso monitorare la posizione di scorrimento durante lo scorrimento in Safari su iOS?
- 30. Mostra l'opzione selezionata nel menu di riepilogo a discesa bootstrap
u possibile utilizzare http://developer.android.com/reference/android/view/inputmethod /InputMethodManager.html e http://developer.android.com/reference/android/view/inputmethod/InputMethodManager.html#hideSoftInputFromWindow%28android.os.IBinder,%20int%29 – Sam