android – 如果标签位置发生变化,或者通过调用onPageChangeListener,关闭searchview

前端之家收集整理的这篇文章主要介绍了android – 如果标签位置发生变化,或者通过调用onPageChangeListener,关闭searchview前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个活动从我加载6个片段.
三个片段中的六个具有搜索视图,其余三个片段没有实现搜索视图.

我在其中制作了两个menu.xml

>一个具有searchview和commonitem的动作栏和其他
> one没有searchview并包含常用项

现在,如果我在第一个选项卡中展开搜索视图,然后移动到第二个选项卡,searchview仍然打开(我知道它是第二个选项卡的搜索视图,因为我已经为每个片段实现了onCreateOptionMenu()),我不知道不想要.

我想要的是当我移动到第一个片段到第二个或第三个,那时searchview应该折叠并且只点击searchview(在当前片段中它应该被扩展).

此外,如果我移动到第一个片段到第2个,第3个和第4个(我的帐户信息片段,在操作栏中不包含searchview),那么在第4个片段中我仍然可以在开放模式下获得searchview …

另一件我想知道的事情是,点击搜索视图会扩展并弹出软键盘,这是搜索视图(扩展和打开键盘)的默认行为吗?

我想点击搜索视图的文本(编辑文本)区域时打开键盘.

希望明确……
任何建议/链接将不胜感激……

如果您需要我更多细节,请告诉我…..

编辑::

应用S.D.的解决方

测试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());
}

解决方法

搜索视图实现有点奇怪我不确定它是一个bug还是预期的功能.要正确折叠SearchView,您必须两次调用setIconified(true).第一次调用有时会清除文本,第二次调用会实际崩溃.

猜你在找的Android相关文章