2012-07-30 22 views
5

Sto usando AutoCompleteTextView nella mia app con un adattatore personalizzato e funziona perfettamente in modalità verticale. In modalità orizzontale, tuttavia, la tastiera del software occupa la maggior parte dello schermo e la visualizzazione del testo utilizza i pulsanti di sovrapposizione invece delle viste fornite dall'adattatore.AutoCompleteTextView suggerimenti in modalità orizzontale

Non sono riuscito a trovare una documentazione chiara su come funziona dietro le quinte. Sembra che in modalità landscape AutoCompleteTextView ignori il metodo getView() dell'adattatore, esegua un po 'di lavoro sporco utilizzando getItem() e esegua il rendering degli elementi stessi utilizzando stringhe non elaborate.

a peggiorare le cose sembra che in AutoCompleteTextView è accualy presenta due elenchi di suggerimenti per il completamento automatico: i pulsanti a discesa e sovrapposizione standard nello stesso tempo (questo è ben visibile se impostiamo imeOptions a flagNoExtractUi per evitare AutoCompleteTextView espansione nel paesaggio) .

Mi piacerebbe fornire le mie visualizzazioni in ENTRAMBI situazioni, ma sono riuscito a farlo solo per il menu a discesa finora. Eventuali modifiche per fornire visualizzazioni personalizzate per l'elenco sovrapposto?

Mi dispiace ma non riesco a pubblicare le immagini a causa del basso posizionamento ancora. Posso inviarli se qualcuno ha bisogno di loro.

+0

puoi aiutarmi con questo http://stackoverflow.com/questions/29046302/how-to-implement-autocompletetextview-with-listview –

risposta

0

Ho appena riscontrato questo problema. Come hai detto tu, in orizzontale TextView sta basando i suoi suggerimenti autocompleta sul risultato di getItem(). Non vedo davvero un modo per fornire qualcosa di diverso dal testo in questo scenario, ma una soluzione semplice per ottenere il testo corretto da mostrare in orizzontale è di ignorare toString() per l'oggetto su cui si basa il suggerimento.

Ad esempio, nel mio scenario sto usando un elenco di oggetti Contact per compilare i miei hint autocomplete, quindi ho annullato toString() nella mia classe Contact per far sì che mostri "FirstName LastName" invece di una rappresentazione di oggetto grezzo come "Contatto @ a2a6d4d3a5."

+0

C'è una [soluzione migliore] (http://stackoverflow.com/a/12934794/2469901) rispetto a come funziona toString(), che potrebbe essere implementato in modo diverso rispetto a questo scenario. – Skytile

Problemi correlati