Android 打开搜索视图时未调用onBackPressed
我点击搜索视图并输入要搜索的数据,结果显示出来,我点击搜索结果转到细节片段,现在如果我按下后退按钮,它就不起作用了。我必须按两次后退按钮才能返回ListFragment。然而,当我按下向上按钮时,它工作正常。 这可能是什么原因 编辑1:(添加代码段)Android 打开搜索视图时未调用onBackPressed,android,android-layout,android-fragments,Android,Android Layout,Android Fragments,我点击搜索视图并输入要搜索的数据,结果显示出来,我点击搜索结果转到细节片段,现在如果我按下后退按钮,它就不起作用了。我必须按两次后退按钮才能返回ListFragment。然而,当我按下向上按钮时,它工作正常。 这可能是什么原因 编辑1:(添加代码段) 在活动的onBackPressed()中,我弹出片段。如果您的SearchView处于open状态,则应按back按钮两次返回ListFragment 发件人: 默认情况下,searchable活动接收ACTION\u SEARCH意图 通过调用o
在活动的onBackPressed()中,我弹出片段。如果您的
SearchView
处于open
状态,则应按back
按钮两次
返回ListFragment
发件人:
默认情况下,searchable活动
接收ACTION\u SEARCH
意图
通过调用onCreate()
和活动的新实例
带到活动堆栈的顶部
。现在有两个例子
在活动堆栈中的可搜索活动
(因此按
Back按钮
返回到可搜索的的上一个实例
活动
,而不是退出可搜索活动
)
希望这将有助于~您需要共享一些实现中的代码。是的,在ListFragment中这是绝对好的,这就是工作的方式。但同样的行为也出现在片段中,不知道为什么?
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
menu.clear();
inflater.inflate(R.menu.defect_search, menu);
mIsMenuInflated = true;
mSearchItem = menu.findItem(R.id.action_search);
mSearchView = (SearchView) MenuItemCompat.getActionView(mSearchItem);
mSearchView.setQueryHint(getString(R.string.search_defect_hint));
mSearchView.setOnQueryTextListener(this);
mSearchView.setOnQueryTextFocusChangeListener(this);
super.onCreateOptionsMenu(menu, inflater);
}
public void onClickDefect(Integer defectId) {
hideKeyboard(mActivity);
getActivity().getSupportFragmentManager()
.beginTransaction()
.add(R.id.frame_content, DefectTabFragment.newInstance(defectId))
.addToBackStack(null)
.commit();
}