2015-11-17 12 views
5

Attualmente sto sviluppando un semplice app che utilizzano Android Studio con il livello minimo API 8, ora ho attualmente utilizzano android.support.v7.widget.SearchView nel mio layout LinearLayout in content_main.xml, non su ACTIONBAR, ora il problema è, i' non sono in grado di impostare il SearchView come Expanded di default, ho già mirano a una soluzione e ho ottenuto solo questo:SearchView Android set esteso di default

android:iconifiedByDefault="false"

ecco il mio codice completo per la mia SearchView

  <android.support.v7.widget.SearchView 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/searchView" 
      android:background="#00000000" 
      android:iconifiedByDefault="false" 
      android:layout_weight="1" /> 

ma senza fortuna, non funziona. qualcuno potrebbe aiutarmi? Qualsiasi aiuto sarebbe apprezzato. Grazie mille!

+0

Prova questo: 'searchItem.expandActionView();' – activesince93

+0

c'è qualche soluzione senza impostarla a livello di programmazione? voglio che si imposti sul layout. :-) grazie!!! – bernzkie

+0

Se l'impostazione nel file 'xml' non sta aiutando, allora si dovrebbe andare con la parte di programmazione. – activesince93

risposta

11

Ok, così ho risolto il problema per tutti coloro che vogliono. usa la libreria di supporto per SearchView ecco come puoi personalizzarlo

  <android.support.v7.widget.SearchView 
      android:id="@+id/searchView" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 

      app:closeIcon="@drawable/ic_clear" // To set custom clear icon 

      app:searchIcon="@drawable/ic_search" //To set custom search icon 

      app:queryBackground="@color/transparent" // i decided to remove underline so i create a custom background for my searchView 

      app:queryHint="@string/filterHint" //to set a custom Hint 


      app:iconifiedByDefault="false" //And finally, to Expand it as default 

      /> 

come ho detto, ho paura di sovrascrivere il layout xml in runtime tramite codice java, in modo da renderlo organizzato e non più sovrascritto durante il runtime, questo è il modo in cui lo faccio.

Reference

Grazie per l'aiuto !!!

1

Per rendere espanso SearchView per impostazione predefinita, chiamare setIconifiedByDefault (false) su di esso quando lo si inizializza (ad es. Su onCreate (..). Nella maggior parte dei casi ho rilevato che verrà attivato automaticamente, ma se non semplicemente . chiamare requestFocus() su di esso troppo

3

ho usato il codice qui sotto per espandere la SearchView e posizionare il cursore al tempo stesso:

final SearchView sv = new SearchView(((MainActivity) getActivity()).getSupportActionBar().getThemedContext()); 
     sv.setIconifiedByDefault(true); 
     sv.setFocusable(true); 
     sv.setIconified(false); 
     sv.clearFocus(); 
     sv.requestFocusFromTouch();