2017-07-17 106 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關閉。