如何在片段中使用 MainActivity 的菜单选项中定义的搜索视图?

How to use search view defined in menuoptions of the MainActivity in fragments?

我正在尝试在多个片段中使用工具栏(菜单)中的搜索视图。因此,如果我切换到各种片段,则搜索视图将适用于并仅搜索该片段。在MainActivity中定义后,如何在fragments中使用?

您应该随心所欲地引用您的片段。然后根据您的情况,当您输入请求或任何其他方式时,您需要在您的片段中进行搜索,如下所示:

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

希望这能帮助您找到正确的解决方案