У меня есть следующая структура во фрагменте.
У меня также есть этот код для изменения фрагментов.
search_box.setOnSearchClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
changeFragment(new SearchAFragment());
}
});
search_box.setOnCloseListener(new SearchView.OnCloseListener() {
@Override
public boolean onClose() {
changeFragment(new SearchBFragment());
return false;
}
});
Как вы видите, в соответствии с состоянием просмотра поиска, фрагментыизменения.Когда вид поиска не сфокусирован, пустой фрагмент отображается в структуре кадра (форма 1).После включения поискового просмотра, видовой экран с вкладками, показанными в структуре кадра (форма 2).Мне нужно использовать onTextChangedListener для searchview во фрагментах viewpager.
Я использую их вот так;
((android.support.v7.widget.SearchView) getParentFragment().getView().findViewById(R.id.search_box)).setOnQueryTextListener(new android.support.v7.widget.SearchView.OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
return false;
}
@Override
public boolean onQueryTextChange(final String newText) {
return false;
}
});
Я поместил приведенный выше код в оба фрагмента в окне просмотра, и он работает только для второго фрагмента в окне просмотра.Я предполагаю, что слушатель во втором фрагменте переопределяет первый в первом фрагменте viewpager.
Таким образом, в результате во фрагментах viewpager выполняется операция заполнения представления переработчика, и текст помещается ввид поиска во внешнем фрагменте в форме 1. Как я могу решить эту проблему прослушивания?