Android Sherlock ActionBar SearchView在多个片段中不工作
我非常需要你,因为在过去的4天里我一直被困在这个问题上 所以,事情是这样的 我有一个sherlock片段活动,我从中调用viewpager中的六个片段 现在,我想操纵sherlock操作栏,这取决于所选的选项卡 因此,对于前3个选项卡,我想显示searchview和overflow菜单图标 为此,我到目前为止已经尝试过: 我非常需要你,因为在过去的4天里我一直被困在这个问题上 所以,事情是这样的 我有一个sherlock片段活动,我从中调用viewpager中的六个片段 现在,我想操纵sherlock操作栏,这取决于所选的选项卡 因此,对于前3个选项卡,我想显示searchview和overflow菜单图标 为此,我到目前为止已经尝试过: 1) 调用Android Sherlock ActionBar SearchView在多个片段中不工作,android,android-fragments,actionbarsherlock,searchview,Android,Android Fragments,Actionbarsherlock,Searchview,我非常需要你,因为在过去的4天里我一直被困在这个问题上 所以,事情是这样的 我有一个sherlock片段活动,我从中调用viewpager中的六个片段 现在,我想操纵sherlock操作栏,这取决于所选的选项卡 因此,对于前3个选项卡,我想显示searchview和overflow菜单图标 为此,我到目前为止已经尝试过: 我非常需要你,因为在过去的4天里我一直被困在这个问题上 所以,事情是这样的 我有一个sherlock片段活动,我从中调用viewpager中的六个片段 现在,我想操纵sherl
设置选项菜单(true)代码>在每个片段中。
2) 在每个片段中添加了onCreateOptions菜单()。和
那么我就实现了我想要的
现在,我希望在单击searchview时,当按下back时,它应该会展开并折叠。为了实现这一点,我在前3个片段中添加了这一点,并实现了逻辑。(在每个片段中创建onPrepareOptionMenu()
,并添加onQueryTextChange(“”;
方法)
片段代码::
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater)
{
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.menu, menu);
MenuItem searchItem = menu.findItem(R.id.menu_item_search);
SearchView searchView = (SearchView) searchItem.getActionView();
searchView.setQueryHint("Search for Products");
searchView.setOnQueryTextListener(this);
searchView.setIconifiedByDefault(false);
}
@Override
public void onPrepareOptionsMenu(Menu menu)
{
super.onPrepareOptionsMenu(menu);
onQueryTextChange("");
}
@Override
public boolean onQueryTextSubmit(String query)
{
return true;
}
@Override
public boolean onQueryTextChange(String newText)
{
return false;
}
menu.xml
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/menu_item_search"
android:icon="@drawable/abs__ic_search"
android:showAsAction="ifRoom|collapseActionView"
android:actionViewClass="com.actionbarsherlock.widget.SearchView"
android:title="Search Products">
</item>
<item
android:id="@+id/root_menu"
android:icon="@drawable/abs__ic_menu_moreoverflow_normal_holo_light"
android:showAsAction="always"
android:title="More">
<menu>
<item
android:id="@+id/menu_Home"
android:icon="@drawable/home"
android:showAsAction="never"
android:title="Home"/>
<item
android:id="@+id/menu_favourite"
android:icon="@drawable/favourite"
android:showAsAction="never"
android:title="Favourite"/>
<item
android:id="@+id/menu_Balance"
android:icon="@drawable/balance"
android:showAsAction="never"
android:title="Balance"/>
<item
android:id="@+id/menu_logout"
android:icon="@drawable/btn_logout"
android:showAsAction="never"
android:title="Logout"/>
</menu>
</item>
</menu>
问题::(在预蜂窝设备上)
现在,当我单击第一个片段的searchview时,它并没有被展开,但对片段2和片段3效果良好
步骤::
1) 直接转到片段1,单击searchview,不展开
2) 直接转到片段2选项卡上(不要在第二个片段中单击searchview),返回片段1,搜索视图展开
3) 直接转到片段3选项卡上(不要单击第三个片段中的搜索视图),返回片段1,搜索视图展开
是否存在与searchview焦点相关的任何问题?还是我以某种不寻常的方式调用了supportInvalidateOptionsMenu()
如果你还需要我的帮助,请告诉我。。。
请指导我的实施。。。你知道为什么会发生这种奇怪的行为吗?如有任何建议/解释,将不胜感激
请在这个问题上帮助我。。。。
先谢谢你
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/menu_item_search"
android:icon="@drawable/abs__ic_search"
android:showAsAction="ifRoom|collapseActionView"
android:actionViewClass="com.actionbarsherlock.widget.SearchView"
android:title="Search Products">
</item>
<item
android:id="@+id/root_menu"
android:icon="@drawable/abs__ic_menu_moreoverflow_normal_holo_light"
android:showAsAction="always"
android:title="More">
<menu>
<item
android:id="@+id/menu_Home"
android:icon="@drawable/home"
android:showAsAction="never"
android:title="Home"/>
<item
android:id="@+id/menu_favourite"
android:icon="@drawable/favourite"
android:showAsAction="never"
android:title="Favourite"/>
<item
android:id="@+id/menu_Balance"
android:icon="@drawable/balance"
android:showAsAction="never"
android:title="Balance"/>
<item
android:id="@+id/menu_logout"
android:icon="@drawable/btn_logout"
android:showAsAction="never"
android:title="Logout"/>
</menu>
</item>
</menu>