2017-07-17 105 views
0

在我的情况下,我有activity与2个容器fragments。 一个容器显示Fragment带列表,第二个显示所选列表项的详细信息。第二个容器默认为GONESearchView自动关闭

在活动我有SearchView,我从片段得到哪个实例那样:

@Override 
    public void onPrepareOptionsMenu(Menu menu) { 
     MenuItem searchMenuItem = menu.findItem(R.id.action_search); 
     rxSearchView = (RxSearchView) searchMenuItem.getActionView(); 
     rxSearchView.setSearchListener(taskListPresenter); 
     rxSearchView.setOnCloseListener(() -> { 
      taskListPresenter.clearSearch(); 
      return false; 
     }); 
    } 

和,我在OnCreateView();

问题的情况下使用的方法setHasOptionsMenu(true);

1。用户点击searchView,并获得过滤元素:

enter image description here

2.用户点击的元素,调用next方法:

`((MainActivity)getActivity()).showSecondaryFragment(TaskDetailFragment.newInstance();` 

MainActivity它看起来像:

getSupportFragmentManager() 
      .beginTransaction() 
      .replace(R.id.ltRightContainer, baseFragment) 
      .setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN) 
      .commit(); 

之后,搜索查看自动关闭,像下面的屏幕。

enter image description here

如何解决这个问题的时刻?我不希望它自动关闭。

RxSearchView只是包装与RxJava实施,没有ovverride方法。

+0

我觉得SearchView'一旦失去焦点就会自动关闭。您可以继承并更改该逻辑。 – azizbekian

+0

@azizbekian嗨,被尝试与重点的ovverride方法,它没有帮助。 试图找到正确的方法 –

回答

0

第二个片段刚刚调用方法setupMenu(R.menu.menu_my_task); 它使searchView从第一个fragment关闭。