Обмен фрагментами в одном действии?

Вкл. На планшете у нас есть два фрагмента (два разных представления одних и тех же данных), которые расположены рядом друг с другом. На мобильных устройствах мы хотели бы переключаться между этими двумя фрагментами одним нажатием кнопки. Мобильный макет выглядит примерно так:


  
  

В методе swapFragments (View) действия я пытаюсь использовать FragmentManager для замены fragA на fragB : [122 0] ... но я всегда вижу fragA через прозрачные части fragB , что наводит меня на мысль, что он просто помещает fragB поверх ] fragA , не заменяя его.

Я начинаю использовать hide (Fragment) и аналогичные методы в транзакции, но это не похоже на правильный способ сделай это.

Какие-нибудь советы о том, как правильно поменять местами эти фрагменты?

Изменить : Я видел ответ на этот вопрос . Однако это меня смущает, так как мне нужно указать другой макет для планшета и телефона. Если мне нужно программно добавлять фрагменты, как мне избежать кода, специфичного для каждого макета в действии (например,

 if(TABLET) {
   addFragmentA();
   addFragmentB();
 } else {
   addFragmentA();
 }

6
задан Community 23 May 2017 в 11:48
поделиться