У меня есть фрагмент, который содержит меню поиска на панели инструментов. когда пользователь впервые нажимает на элемент навигации, Fragment
добавляется в действие, которое использует add
метод FragmentManager
, и тогда это будет show
, hide
или remove
из контейнера фрагментов согласно логике c.
Моя проблема в том, что когда я первый раз щелкаю по меню поиска элементов навигации, отображается на панели инструментов, но после этого, когда я возвращаюсь к этому фрагменту, иногда появляется пустая панель инструментов без меню поиска. Как я могу решить эту проблему?
Вот код основной части фрагмента:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_search, container, false);
searchFragmentInstance = this;
filterManager = new FilterManager();
//set toolbar
Toolbar toolbar = view.findViewById(R.id.toolbar_search);
((AppCompatActivity)getActivity()).setSupportActionBar(toolbar);
//other code...
return view;
}
Отображение меню поиска на панели инструментов, используя это:
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onPrepareOptionsMenu(menu);
inflater.inflate(R.menu.search, menu);
MenuItem item = menu.findItem(R.id.action_search);
SearchManager searchManager = (SearchManager) getContext().getSystemService(Context.SEARCH_SERVICE);
SearchView searchView = (SearchView) item.getActionView();
searchView.setSearchableInfo(searchManager.getSearchableInfo(getActivity().getComponentName()));
searchView.setBackgroundColor(getResources().getColor(R.color.colorPrimaryDark));
//other code...
}