Разработка нескольких фрагментов и действий
Добрый день, у меня есть три действия с их соответствующими фрагментами A
, B
и C
. Фрагмент A
- это статический фрагмент, остальные фрагменты - динамические.
Активность A
уже реализует прослушиватель для фрагмента A
, который используется для загрузки фрагмента B
в альбомной ориентации или перехода на новый экран в одиночной панели.
То, что я хочу, - это когда некоторая кнопка нажата в фрагменте B
, который вызывает фрагмент C
, я хочу, чтобы он был заменен фрагментом C
в альбомной ориентации (фрагмент A
все равно будет присутствовать) или вывести новый экран в режиме одиночной панели. У меня есть этот простой код в методе B onCreate
:
if (getResources().getConfiguration().orientation ==
Configuration.ORIENTATION_LANDSCAPE) {
finish();
return;
}
Я пытаюсь избежать фрагментации фрагментации, так как на нее нахмурился. Так ли это означает, что я должен реализовать слушателей для фрагмента B
как в действии A
, так и B
, я предполагаю, что когда в альбомной ориентации активность A
будет загружать фрагмент C
и в портрете, B
берет на себя? Есть ли способ лучше?. Я думал только о внедрении слушателя в действии B
и переходе к активности A
, когда в альбомной ориентации, но я думаю, что он был бы закончен, прежде чем он даже должен был пройти из-за вышеуказанного кода. Есть предположения?
Ответы
Ответ 1
... также означает, что я реализую прослушиватель для фрагмента B в обоих Действия A и B, я предполагаю, что когда в Ориентации ландшафта Активность A будет загружать фрагмент C и в портрет, B берет на себя или Есть ли способ лучше? Я думал только о том, чтобы использовать слушателя в действии B и переходя к Activity A, когда в Ориентации Пейзажа, но я думаю, что это был закончен, прежде чем он даже должен был пройти из-за вышеуказанного кода.
Вы не можете реализовать слушателя только в действии B
, потому что действие A
должно показывать фрагмент C
в альбомной ориентации. Если вы беспокоитесь о дублировании кода, вы можете реализовать базовую активность, для которой вы выполняете обратный вызов, чтобы показать фрагмент C
и сделать ваши два действия расширенными из этого базового класса.
Поскольку вы не публиковали какой-либо реальный код о том, как вы управляете этими фрагментами, имейте в виду, что если вы находитесь в портретной ориентации (в B
активности, показывающей фрагмент B
), и нажав (или что угодно do) вы замените фрагмент на C
, это не будет перенесено на активность A
, если вы переключите ориентацию на пейзаж.