2013-03-08 3 views
6

Ho un'attività che ha un SearchView direttamente sopra un ListView. L'attività funziona dall'utente che digita il testo nel SearchView, che viene quindi utilizzato per filtrare il contenuto di ListView.SearchView e tastiera

Su un telefono da 4 "(Nexus 4) quando l'app è in orientamento" verticale "e l'utente inizia a immettere testo nella vista di ricerca, la metà inferiore dello schermo occupa la tastiera e il testo viene inserito direttamente all'interno il widget SearchView

Tuttavia, quando il telefono è in orientamento "orizzontale", l'intero schermo è occupato dalla tastiera e da un "campo di testo" e il resto dello schermo è perso. pulsante "vetro di ingrandimento" sulla tastiera sembrano avere alcuna azione.

Vedi le screenshot enter image description here

Domanda

È possibile inserire il testo direttamente nel widget SearchView in orientamento orizzontale?

In caso contrario, come faccio a fare qualcosa sui tasti della tastiera?

+0

* È possibile inserire il testo direttamente nel widget SearchView quando è in orientamento orizzontale * - Non credo. * come faccio a fare qualcosa sui tasti della tastiera? * - quali pulsanti? Cosa fare? – Luksprog

+0

"Il pulsante" Cerca "e il pulsante" Ingrandisci vetro "sulla tastiera sembrano non avere alcuna azione." –

+0

Mi dispiace, ho completamente perso quella frase. Sei sicuro di non ricevere la chiamata 'onQueryTextSubmit' quando fai clic su una ricerca o sul pulsante Ingrandisci? – Luksprog

risposta

12

è necessario impostare le vostre imeOptions per il widget SearchView, per esempio nel xml SearchableInfo:

android:imeOptions="actionSearch|flagNoExtractUi|flagNoFullscreen" 

simile può essere ottenuto tramite setImeOptions se il tuo non utilizzando XML per configurare la visualizzazione di ricerca.

0

Puoi farlo da codice Java come seguire, in onCreateOptionsMenu (menu Menu) Metodo:

searchView.setImeOptions(searchView.getImeOptions() | EditorInfo.IME_ACTION_SEARCH | EditorInfo.IME_FLAG_NO_EXTRACT_UI | EditorInfo.IME_FLAG_NO_FULLSCREEN); 
2

Impostazione dei imeOptions ad un android.support.v7.widget.SearchView non funziona: si' ll bisogno di impostare questo al EditText al suo interno:

Java:

EditText searchInput = searchview.findViewById(android.support.v7.appcompat.R.id.search_src_text) 
searchInput.setImeOptions(EditorInfo.IME_ACTION_SEARCH) 

Kotlin:

val searchInput = searchview.findViewById<EditText>(android.support.v7.appcompat.R.id.search_src_text) 
searchInput.imeOptions = EditorInfo.IME_ACTION_SEARCH 
+0

Puoi per favore guardare questa domanda. Ho provato la tua soluzione ma non ha funzionato nel mio caso. https://stackoverflow.com/questions/46263084/android-search-tool-in-landscape-orientation –