【发布时间】:2014-12-05 10:25:55
【问题描述】:
最近我添加了一个用于在片段内部搜索的工具。一些片段具有 ListView,因此当用户键入搜索文本时,ListView 会过滤行。 这是在 tutorial 之后使用 ActionBar 完成的。
我将来自多个片段的侦听器附加到 MainActivity,因此当用户在屏幕顶部键入文本时,它会过滤片段中的行。但在其他片段中,不需要搜索任何东西,所以应该隐藏放大镜。
但是,每个屏幕上都会绘制一个放大镜。我还尝试不在活动中显示它,而只在带有此代码的片段中绘制:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.main_invitro, menu);
menu.clear();
// Associate searchable configuration with the SearchView
SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();
SearchManager searchManager = (SearchManager) getActivity().getSystemService(Context.SEARCH_SERVICE);
searchView.setSearchableInfo(searchManager.getSearchableInfo(getActivity().getComponentName()));
searchView.clearFocus();
super.onCreateOptionsMenu(menu,inflater);
}
但放大镜停留在其他片段中,也可以在顶部键入文本。
是否有正确的方法仅在某些片段中显示放大镜?
【问题讨论】:
标签: android android-fragments android-actionbar