У меня есть иерархия представлений, например ниже.
В моем втором фрагменте у меня есть RecyclerView
. Когда по элементу щелкают, я хочу открыть его в другом Fragment
(в полноэкранном режиме), поэтому я использую метод addSharedElement()
, и все работает нормально после 2 дней ретро-проектирования: все посты, которые я нашел на StackOverFlow, делают не говоря уже о том, что для работы «полноэкранный» фрагмент должен заменить первого родителя внутри действия.
Сначала я хотел, чтобы вложенный полноэкранный фрагмент находился во втором фрагменте, но это невозможно с помощью этого метода.
Я пробовал все остальное, на каждом этапе иерархии моего представления они работают, за исключением того, что я заменил свой FirstFragment своим полноэкранным фрагментом.
- К сожалению, также невозможно использовать переход с методом
add()
.
Проблема в том, что этот фрагмент уничтожен и не воссоздан, несмотря на вызов addToBackStack()
, когда я нажимаю кнопку «назад» внутри NavigationBar
. Я не очень знаком с методом addToBackStack()
и как я могу вернуть любые фрагменты, которые я там добавил.
ВОПРОС 1 : Как я могу заставить его работать, не разрушая родительский элемент? фрагмент (FirstFragment в моей иерархии представлений) или без использования перехода с общим элементом, но с достижением того же результата?
Похоже, что переход выполняет воссоздание представления в новом фрагменте с той же шириной / высотой, координаты x & y соответствуют предыдущему фрагменту и анимируют его из нового фрагмента ...
ВОПРОС 2 : Было бы плохой идеей сделать это самому?
РЕДАКТИРОВАТЬ : Моя цель - закрыть полноэкранный фрагмент смахиванием вниз, и как только палец будет перемещен с 10dp вдоль оси Y, я хочу, чтобы можно было показать предыдущий фрагмент позади (SecondFragment в моем случае), поэтому я не хочу уничтожать родительские фрагменты.