【发布时间】:2014-01-13 07:26:22
【问题描述】:
我有一项活动,我正在加载 6 个片段。 三个片段中有六个有搜索视图,其余三个没有实现搜索视图。
我在其中做了两个menu.xml
- 具有用于操作栏和其他的 searchview 和 commonitem 的一个
- 一个没有搜索视图,包含常用项
现在,如果我在第一个选项卡中展开搜索视图,然后移动到第二个选项卡,搜索视图仍然会打开(我知道它是第二个选项卡的搜索视图,因为我已经为每个片段实现了 onCreateOptionMenu()),我不想要。
我想要的是当我将第一个片段移动到第二个或第三个片段时,搜索视图应该被折叠并且只点击搜索视图(在当前片段中它应该被展开)。
此外,如果我将第一个片段移至第 2、3 和 4 个(我的帐户信息片段,操作栏中不包含搜索视图),那么在第 4 个片段中,我仍然会在打开模式下获得搜索视图...
我想知道的另一件事,通过单击搜索视图会展开并弹出软键盘,这是搜索视图的默认行为(扩展和打开键盘)吗?
当我点击搜索视图的文本(编辑文本)区域时,我想打开键盘。
希望我清楚.... 任何建议/链接将不胜感激...
如果您需要我的更多细节,请告诉我.....
编辑::
应用 S.D. 的解决方案
在 2.3.6 上测试
1)当我在第一个片段(第一个标签)上时
2)在同一片段中展开后::
3)移动到下一个片段(选项卡,通过保持搜索视图打开)::
在 4.2.1 上测试 ::
1)当我在第一个片段(第一个标签)上时
2)在同一片段中展开后::
3)移动到下一个片段(选项卡,通过保持搜索视图打开)::
我在下面的方法中在我的容器活动中设置了“setIconified(true)”(从我的所有片段加载的地方)::
@Override
public void onPageSelected(int position)
{
if (searchView!=null && !searchView.isIconified()) { //true == searchView closed
searchView.setIconified(true);
searchView.setIconified(true);
}
actionBar.setSelectedNavigationItem(position);
}
@Override
public void onTabSelected(Tab tabposition, FragmentTransaction fragmentposition) {
if (searchView!=null && !searchView.isIconified()) { //true == searchView closed
searchView.setIconified(true);
//searchView.setIconified(true);
}
awesomePager.setCurrentItem(tabposition.getPosition());
}
【问题讨论】:
标签: android actionbarsherlock searchview