And*_*ner 6 android actionbarsherlock searchview
我有一个活动从我加载6个片段.三个片段中的六个具有搜索视图,其余三个片段没有实现搜索视图.
我在其中制作了两个menu.xml
现在,如果我在第一个选项卡中展开搜索视图,然后移动到第二个选项卡,searchview仍然打开(我知道它是第二个选项卡的搜索视图,因为我已经为每个片段实现了onCreateOptionMenu()),我不知道不想要.
我想要的是当我移动到第一个片段到第二个或第三个,那时searchview应该折叠并且只点击searchview(在当前片段中它应该被扩展).
此外,如果我移动到第一个片段到第2个,第3个和第4个(我的帐户信息片段,在操作栏中不包含searchview),那么在第4个片段中我仍然可以在开放模式下获得searchview ...
另一件我想知道的事情是,点击搜索视图会扩展并弹出软键盘,这是搜索视图(扩展和打开键盘)的默认行为吗?
我想点击搜索视图的文本(编辑文本)区域时打开键盘.
希望明确....任何建议/链接将不胜感激......
如果您需要我更多细节,请告诉我.....
编辑::
应用SD的解决方案
测试2.3.6
1)当我在第一个片段时(第一个标签)

2)在相同的片段中扩展后::

3)移动到下一个片段(Tab,通过保持searchview打开)::

测试4.2.1 ::
1)当我在第一个片段时(第一个标签)

2)在相同的片段中扩展后::

3)移动到下一个片段(Tab,通过保持searchview打开)::

我已经在我的容器活动中设置了'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());
}
Run Code Online (Sandbox Code Playgroud)
要关闭SearchView您可以使用searchview.setIconified(true). 所以在你的片段中onPause你可以调用:
public void onPause() { //not sure if you should use onDestroyView() instead
super.onPause();
if (!yourSearchView.isIconified()) { //true == searchView closed
yourSearchView.setIconified(true);
}
}
Run Code Online (Sandbox Code Playgroud)
的自定义行为SearchView是显示您的键盘。如果您单击“搜索”图标,SearchView将自动弹出 ,并且“搜索文本字段”将被聚焦,从而自动打开键盘。但是,您应该能够删除文本视图的焦点,这将关闭键盘。检查这里
搜索视图实现有点奇怪我不确定它是一个bug还是预期的功能.要正确折叠SearchView,您必须调用setIconified(true)两次.第一次调用有时会清除文本,第二次调用会实际崩溃.
| 归档时间: |
|
| 查看次数: |
4279 次 |
| 最近记录: |