J'ai du code qui définit un booléen si la vue de recherche est ouverte ou non.
MenuItemCompat.setOnActionExpandListener(action_search, new MenuItemCompat.OnActionExpandListener() {
@Override
public boolean onMenuItemActionExpand(MenuItem item){
isSearch = true;
return true;
}
@Override
public boolean onMenuItemActionCollapse(MenuItem item){
isSearch = false;
return true;
}
});
Ça marche. Je suis satisfait de la façon dont il réagit. Cependant, il apparaît comme obsolète, le setOnActionExpandListener est barré avec l'avertissement
Android.support.v4.view.MenuItemCompat.setOnActionExpandListener est déconseillé
Suggestions?
Android.support.v4.view.MenuItemCompat.setOnActionExpandListener
Est déconseillé
Oui MenuItemCompat.setOnActionExpandListener
Cette méthode est déconseillée au niveau API 26.1.0.
Suggestions?
Utilisez MenuItem.setOnActionExpandListener(MenuItem.OnActionExpandListener)
directement.
MenuItemCompat.OnActionExpandListener
sur cet élément de menu pour être averti lorsque l'action associée view
est développée ou réduite. Le menu item
Doit être configuré pour développer ou réduire son action view
à l'aide de l'indicateur SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW
.
EXEMPLE DE CODE
MenuItem item = menu.findItem(R.id.action_order);
item.setOnActionExpandListener(new MenuItem.OnActionExpandListener() {
@Override
public boolean onMenuItemActionExpand(MenuItem menuItem) {
isSearch = true;
return true;
}
@Override
public boolean onMenuItemActionCollapse(MenuItem menuItem) {
isSearch = false;
return true;
}
});
Cette interface est obsolète au niveau de l'API 26.1.0.
Au lieu de MenuItemCompat.OnActionExpandListener
Utilisation MenuItem.OnActionExpandListener
directement.
Exemple:
MenuItem menuItemSearch = menu.findItem(R.id.action_search);
menuItemSearch.setOnActionExpandListener(new MenuItem.OnActionExpandListener() {
@Override
public boolean onMenuItemActionExpand(MenuItem menuItem) {
isSearch = true;
return true;
}
@Override
public boolean onMenuItemActionCollapse(MenuItem menuItem) {
isSearch = false;
return true;
}
});
Bonus
définition OnQueryTextListener
et OnCloseListener
MenuItem menuItemSearch = menu.findItem(R.id.action_search);
final SearchView searchView = (SearchView) menuItemSearch.getActionView();
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String s) {
//Do something
return false;
}
@Override
public boolean onQueryTextChange(String s) {
return false;
}
});
searchView.setOnCloseListener(new SearchView.OnCloseListener() {
@Override
public boolean onClose() {
// do something
return false;
}
});