2015-07-17 22 views
8

Ich habe die Menüpunkte wie:Wie erkennt man, ob SearchView erweitert ist?

<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); 
} 

ich überprüfen möchten, ob die Suche erweitert wird.

Ich versuchte searchItem.isActionViewExpanded() und searchView.isHovered() aber keiner von ihnen funktionierte.

Was fehlt mir?

TIA

+0

Wo? Warum benutzt du keinen Listener? – Selvin

Antwort

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

dies versuchen, wird es erkennen, wenn der Benutzer klickt auf das Suchsymbol:

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

Danke für Hilfe –

Verwandte Themen