【发布时间】:2015-12-10 18:24:27
【问题描述】:
我已经像 YouTube 应用一样在单独的片段中实现了 searchView。因此,当用户单击搜索图标时,新片段会启动并展开搜索视图。
现在,如果现在单击向上按钮,则搜索视图将折叠。只有当再次单击向上按钮时,才会从后堆栈中显示上一个片段。
我需要做的是,当用户从展开的搜索视图状态单击向上按钮时,搜索片段会立即关闭并出现前一个片段。
任何帮助表示赞赏。
更新
我找到了几乎可行的解决方案:
MenuItemCompat.setOnActionExpandListener(searchItem, new MenuItemCompat.OnActionExpandListener() {
@Override
public boolean onMenuItemActionCollapse(MenuItem item) {
Log.d(LOG_TAG, "onMenuItemActionCollapse");
onBackPressed();
return true; // Return true to collapse action view
}
@Override
public boolean onMenuItemActionExpand(MenuItem item) {
// Do something when expanded
return true; // Return true to expand action view
}
});
但是这个解决方案有一个大问题:如果在搜索视图文本字段中有文本时按下返回箭头按钮,那么
java.lang.IllegalStateException: Fragment SearchFragment not attach to Activity 被抛出。
为什么会发生这种异常以及如何避免它?
【问题讨论】:
标签: android android-fragments searchview