我已经使用ActionBar选项卡实现了两个片段,我正在使用Sherlock片段。当我启动一个片段时,在操作栏上创建一个searchview。
问题是:当我在第一个片段中搜索一些内容并且没有关闭searchview或删除文本的情况下,我转到下一个片段,我得到了一个折叠的searchview,这是可以的。但是当我再次回到第一个片段时,我看到一个像之前一样排序的列表,但是searchview被折叠了。恢复原始列表的唯一方法是单击一次searchview并将其关闭。
当我移动到第二个片段时,如何重置第一个片段上的searchview,或者如何在回到第一个片段时保持searchview打开?
任何一个解决方案都可以。
这是我在片段中膨胀的方法。
问题是:当我在第一个片段中搜索一些内容并且没有关闭searchview或删除文本的情况下,我转到下一个片段,我得到了一个折叠的searchview,这是可以的。但是当我再次回到第一个片段时,我看到一个像之前一样排序的列表,但是searchview被折叠了。恢复原始列表的唯一方法是单击一次searchview并将其关闭。
当我移动到第二个片段时,如何重置第一个片段上的searchview,或者如何在回到第一个片段时保持searchview打开?
任何一个解决方案都可以。
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
>
<item android:id="@+id/action_search"
android:title="search"
android:icon="@drawable/search"
android:orderInCategory="100"
android:showAsAction="always|collapseActionView"
android:actionViewClass="com.actionbarsherlock.widget.SearchView" />
</menu>
这是我在片段中膨胀的方法。
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater)
{
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.main, menu);
SearchView sv = (SearchView)getActivity().findViewById(R.id.action_search);
sv.setOnQueryTextListener(new OnQueryTextListener() {
@Override
public boolean onQueryTextSubmit(String query) {
//...
return false;
}
@Override
public boolean onQueryTextChange(String newText) {
bindingData.resetData();
bindingData.getFilter().filter(newText.toString());
return false;
}
});
}