Как использовать вид поиска, определенный в пунктах меню MainActivity во фрагментах? - PullRequest
0 голосов
/ 28 мая 2019

Я пытаюсь использовать вид поиска на панели инструментов (меню) в нескольких фрагментах. Так что, если я переключусь на различные фрагменты, поиск будет применяться и искать только этот фрагмент тогда. После определения его в MainActivity как я могу использовать его во фрагментах?

1 Ответ

0 голосов
/ 28 мая 2019

Вы должны хранить ссылки на свои фрагменты так, как хотите. Затем, в зависимости от вашей ситуации, когда вы набираете запрос или любым другим способом, вам нужно выполнить поиск по вашему фрагменту, например так:

myFragment.doSearch(query)

Если у вас есть список фрагментов, и вам нужно сделать вызов только в видимой в данный момент форме, вы можете определить переменную isActuallyVisible в каждом фрагменте (в BaseFragment, если он есть) и изменить ее следующим образом:

public void setMenuVisibility(final boolean visible) {
    super.setMenuVisibility(visible);
    isActuallyVisible = visible;        
}

Тогда вы можете сделать поиск следующим образом:

for (Fragment frag : fragmentsList) { 
    if (frag.isActuallyVisible) {
        frag.doSearch(query);
        break;
    }
}

Надеюсь, это поможет вам найти правильное решение

...