2016-01-15 10 views
16

Ho seguito le indicazioni here per SearchView e le implementazioni di dialogo. Entrambi sono visibili sotto. Ci sono molte domande su SO che si concentrano sulla personalizzazione della casella di ricerca, ma poche riguardano la personalizzazione dell'interfaccia utente dei suggerimenti. (Quelli che riguardano il colore/carattere, i valori predefiniti per i quali vanno bene per me.) Mi piacerebbe essere in grado di ampliare i suggerimenti per occupare l'intera larghezza dello schermo. C'è un modo per personalizzare la larghezza utilizzando le finestre di dialogo o le implementazioni SearchView. Preferirei non usare una libreria a meno che non sia l'unica opzione. Se questo è possibile o più semplice con una delle implementazioni va bene.android search: personalizza layout suggerimento

Ecco cosa la finestra di esecuzione assomiglia a me: enter image description here

Ecco cosa l'attuazione SearchView assomiglia per me: enter image description here

+1

http://stackoverflow.com/questions/27671954/android-prevent-text-truncation-in-searchview-suggestions .. questo potrebbe aiutare – user2511882

+0

@ lf215 u puoi creare un istview personalizzato .... –

risposta

3

Ecco come si può fare: this is what I created Fase 1:

basta creare un layout con vista riciclatori o elenco espandibile o un elenco a seconda di quale si desidera usare.

Fase 2: In te l'attività (CityActivity) è necessario fare questo:

  1. creare un gestore come questo:

privato classe statica SearchHandler estende Handler {

private WeakReference<CityActivity> mTarget; 

SearchHandler(CityActivity target) { 
    mTarget = new WeakReference<>(target); 
} 

public void setTarget(CityActivity target) { 
    mTarget.clear(); 
    mTarget = new WeakReference<>(target); 

} 

@Override 
public void handleMessage(final Message msg) { 
    if (msg.what == CityActivity.TRIGGER_SEARCH) { 
     CityActivity activity = mTarget.get(); 
     activity.makeRequest(mSearchText.trim()); 
    } 
} 

} 2. inserisci textchangelistener nel tuo annuncio cercato

public void setTextChangeListener() { 
    searchView.addTextChangedListener(new TextWatcher() { 
     @Override 
     public void beforeTextChanged(CharSequence s, int start, int count, int after) { 
     } 

     @Override 
     public void onTextChanged(CharSequence s, int start, int before, int count) { 
      mSearchText = searchView.getText().toString(); 
      if (!mSearchText.trim().isEmpty()) { 
       handler.removeMessages(CitySelectionActivity.TRIGGER_SEARCH); 
       handler.sendEmptyMessageDelayed(CityActivity.TRIGGER_SEARCH, 
         CityActivity.SEARCH_TRIGGER_DELAY_IN_MS); 
      } else { 
       suggestList.clear(); 
       fillAnything(); 
      } 
     } 

     @Override 
     public void afterTextChanged(Editable s) { 
     } 
    }); 
} 

Ecco suggeriscono lista è il dato che viene dato alla tua lista di

4

Here è il repository che riprende il posto da ricerca google indirizzo . Ha l'implementazione della lista di ricerca a schermo intero.

personalizzata SearchView

customized searchview

0

Si dovrebbe creare un'attività per risultati di ricerca e scrivere un file XML di layout in cui ListView o un riempimento recyclerview larghezza utilizzando il valore match_parent. Il contenuto deve essere nei risultati della ricerca nell'adattatore.