Вкл. На планшете у нас есть два фрагмента (два разных представления одних и тех же данных), которые расположены рядом друг с другом. На мобильных устройствах мы хотели бы переключаться между этими двумя фрагментами одним нажатием кнопки. Мобильный макет выглядит примерно так:
В методе swapFragments (View)
действия я пытаюсь использовать FragmentManager
для замены fragA
на fragB
: [122 0] ... но я всегда вижу fragA
через прозрачные части fragB
, что наводит меня на мысль, что он просто помещает fragB
поверх ] fragA
, не заменяя его.
Я начинаю использовать hide (Fragment)
и аналогичные методы в транзакции, но это не похоже на правильный способ сделай это.
Какие-нибудь советы о том, как правильно поменять местами эти фрагменты?
Изменить : Я видел ответ на этот вопрос . Однако это меня смущает, так как мне нужно указать другой макет для планшета и телефона. Если мне нужно программно добавлять фрагменты, как мне избежать кода, специфичного для каждого макета в действии (например,
if(TABLET) {
addFragmentA();
addFragmentB();
} else {
addFragmentA();
}