使用非片段元素管理backstack顺序

时间:2015-10-18 23:20:02

标签: android android-fragments

我无所适从。我的应用程序的总体布局是一切都包含在一个活动中。在此活动中,将加载主要片段。该主要片段具有可以过滤结果的搜索视图。通过单击主片段中的项目,将另一个辅助片段作为对话框加载。在任何时候,用户都可以单击链接,将另一个主要片段添加到堆栈中。我的问题是,当用户向后按下以向后移动时,搜索视图将优先于辅助片段并删除用户过滤的数据。

理想情况下,我的背包订单需要

Activity -> primary Fragment -> searchview filter -> secondary fragments * X -> primary fragment -> repeat

这是我当前的后台订单

Activity -> primary fragment -> secondary fragments * X -> searchview filter -> primary fragment -> repeat

当前onBackPressed()位于活动中。

@Override
public void onBackPressed(){
   if(getFragmentManager().getBackStackEntryCount() > 0) {
       getFragmentManager().popBackStack();
   } else {
       this.finish();
   }
}

1 个答案:

答案 0 :(得分:0)

如果要保留已过滤的搜索结果,请覆盖onSaveInstanceState()并保存过滤器约束。在onCreateView()覆盖中,检查savedInstanceState是否为空,如果是,则从中获取过滤器约束并重新过滤结果。