2015-07-17 19 views
8

Ho le voci di menu come:Come rilevare se SearchView è espanso?

<item 
    android:id="@+id/action_search" 
    android:title="search" 
    app:actionViewClass="android.support.v7.widget.SearchView" 
    app:showAsAction="always"/> 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.passenger, menu); 
    searchItem = menu.findItem(R.id.action_search); 
    searchView = (SearchView)MenuItemCompat.getActionView(searchItem); 
    searchView.setSubmitButtonEnabled(false); 
    return super.onCreateOptionsMenu(menu); 
} 

voglio verificare se la SearchView è espanso.

Ho provato searchItem.isActionViewExpanded() e searchView.isHovered() ma nessuno di loro ha funzionato.

Cosa mi manca?

TIA

+0

Dove? Perché non usi l'ascoltatore? – Selvin

risposta

4
searchView.setOnSearchClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       //do what you want when search view expended 
      } 
     }); 
     searchView.setOnCloseListener(new SearchView.OnCloseListener() { 
      @Override 
      public boolean onClose() { 
       //do what you want searchview is not expanded 
       return false; 
      } 
     }); 
2

Prova questo, è in grado di rilevare quando l'utente fa clic sull'icona di ricerca:

In Kotlin:

searchView.setOnQueryTextFocusChangeListener { _ , hasFocus -> 
     if (hasFocus) { 
      // searchView expanded 
     } else { 
      // searchView not expanded 
     } 
    } 

In Java:

searchView.setOnQueryTextFocusChangeListener(new View.OnFocusChangeListener() { 
    @Override 
    public void onFocusChange(View v, boolean hasFocus) { 
     if (hasFocus) { 
      // searchView expanded 
     } else { 
      // searchView not expanded 
     } 
    } 
}); 
+0

Grazie per l'aiuto –

Problemi correlati