Родительский фрагмент уничтожен с переходом общего элемента - PullRequest
1 голос
/ 13 апреля 2020

У меня есть иерархия представлений, например ниже.

  • MainActivity:
    • FirstFragment:
      • SecondFragment:

В моем втором фрагменте у меня есть RecyclerView. Когда по элементу щелкают, я хочу открыть его в другом Fragment (в полноэкранном режиме), поэтому я использую метод addSharedElement(), и все работает нормально после 2 дней ретро-проектирования: все посты, которые я нашел на StackOverFlow, делают не говоря уже о том, что для работы «полноэкранный» фрагмент должен заменить первого родителя внутри действия.

Сначала я хотел, чтобы вложенный полноэкранный фрагмент находился во втором фрагменте, но это невозможно с помощью этого метода.

Я пробовал все остальное, на каждом этапе иерархии моего представления они работают, за исключением того, что я заменил свой FirstFragment своим полноэкранным фрагментом.

  • К сожалению, также невозможно использовать переход с методом add().

Проблема в том, что этот фрагмент уничтожен и не воссоздан, несмотря на вызов addToBackStack(), когда я нажимаю кнопку «назад» внутри NavigationBar. Я не очень знаком с методом addToBackStack() и как я могу вернуть любые фрагменты, которые я там добавил.

ВОПРОС 1 : Как я могу заставить его работать, не разрушая родительский элемент? фрагмент (FirstFragment в моей иерархии представлений) или без использования перехода с общим элементом, но с достижением того же результата?

Похоже, что переход выполняет воссоздание представления в новом фрагменте с той же шириной / высотой, координаты x & y соответствуют предыдущему фрагменту и анимируют его из нового фрагмента ...

ВОПРОС 2 : Было бы плохой идеей сделать это самому?

РЕДАКТИРОВАТЬ : Моя цель - закрыть полноэкранный фрагмент смахиванием вниз, и как только палец будет перемещен с 10dp вдоль оси Y, я хочу, чтобы можно было показать предыдущий фрагмент позади (SecondFragment в моем случае), поэтому я не хочу уничтожать родительские фрагменты.

...