就我而言,我activity
有2个fragments
容器。
一个容器显示Fragment
列表,第二个显示所选列表项的详细信息。默认情况下,第二个容器GONE
。
在活动中我有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;
});
}
并且,我在setHasOptionsMenu(true);
OnCreateView();
问题案例:
1.用户点击searchView,获取已过滤的元素:
2。用户点击元素,调用下一个方法:
`((MainActivity)getActivity()).showSecondaryFragment(TaskDetailFragment.newInstance();`
在MainActivity
中,它看起来像那样:
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.ltRightContainer, baseFragment)
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
.commit();
之后,searchView会自动关闭,就像下面的屏幕一样。
如何解决这一刻?我不希望它自动关闭。
RxSearchView
只是使用RxJava
实现的包装器,没有ovverride方法。
答案 0 :(得分:0)
第二个片段只是调用方法setupMenu(R.menu.menu_my_task);
它使searchView
从第一个fragment
关闭。