Фрагмент Android перекрывает друг друга и показывает прозрачный вид
У меня есть действие с макетом контейнера фрагментов, и в этом макете я загружаю фрагмент A, который имеет просмотр списка (просмотр списка загружает данные из Интернета). Теперь при нажатии на элемент списка я хочу показать подробный вид. Для этого я загружаю другой фрагмент B, который является фрагментом детали. Теперь, чтобы сделать это первым, я использовал
FragmentTransaction ft = ((FragmentActivity) context).getSupportFragmentManager().beginTransaction();
ft.replace(R.id.fragmentsContainerLayout, new ScheduleDetailsFragment());
ft.addToBackStack(null);
ft.commit();
Но с помощью команды replace удалите предыдущий фрагмент A, который содержит просмотр списка, и при повторном нажатии он снова перезагружает метод onCreateView фрагмента A и его данные просмотра списка. Я хочу, чтобы он не загружал фрагмент A снова (или не отправлял вызов веб-серверу) на backpress. Я хочу сохранить состояние фрагмента A и его положение прокрутки в виде списка. Для этого я использовал второй вариант, который
FragmentTransaction ft = ((FragmentActivity) context).getSupportFragmentManager().beginTransaction();
ft.add(R.id.fragmentsContainerLayout, new ScheduleDetailsFragment());
ft.addToBackStack(null);
ft.commit();
Если я использую add(), тогда фрагмент B загружается поверх фрагмента A, а фрагмент A все еще виден. Это показывает, что оба фрагмента перекрывают друг друга и прозрачны. Я также натолкнулся на другое решение, которое заключается в использовании методов show() и hide(). Но я не думаю, что это эффективный способ добиться этого. Кто-нибудь может предложить эффективное решение?