Dans mon cas, j'ai activity
avec 2 conteneurs pour fragments
. Un conteneur afficher Fragment
avec la liste, deuxième afficher des informations détaillées sur l'élément de liste sélectionné. Deuxième conteneur GONE
par défaut.SearchView automatiquement fermé
Dans l'activité que j'ai SearchView
, qui par exemple que je reçois de fragment comme ça:
@Override
public void onPrepareOptionsMenu(Menu menu) {
MenuItem searchMenuItem = menu.findItem(R.id.action_search);
rxSearchView = (RxSearchView) searchMenuItem.getActionView();
rxSearchView.setSearchListener(taskListPresenter);
rxSearchView.setOnCloseListener(() -> {
taskListPresenter.clearSearch();
return false;
});
}
et, j'utiliser la méthode setHasOptionsMenu(true);
dans OnCreateView();
Problème cas:
1. L'utilisateur clique sur searchView, et obtient l'élément filtré:
2. utilisateur clique sur l'élément, appelant la méthode suivante:
`((MainActivity)getActivity()).showSecondaryFragment(TaskDetailFragment.newInstance();`
En MainActivity
c'est ressembler à ça:
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.ltRightContainer, baseFragment)
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
.commit();
Après cela, SearchView automatiquement fermé, comme écran ci-dessous.
Comment fixer ce moment-là? Je ne veux pas qu'il se ferme automatiquement.
RxSearchView
juste encapsuler avec l'implémentation RxJava
, sans méthodes ovverride.
Je pense que SearchView' se fermera automatiquement dès qu'il perdra le focus. Vous pouvez sous-classer et modifier cette logique. – azizbekian
@azizbekian Salut, a été essayé méthodes ovverride avec l'accent, ce n'est pas aidé. Essayer de trouver la bonne méthode –