Анимируйте фрагмент хоста навигации - PullRequest
0 голосов
/ 25 января 2020

У меня есть файл макета Activity_main. xml, который состоит из полноэкранного фрагмента сцены и фрагмента узла навигации для «меню», которое занимает 80% экрана, когда оно открыто. У меня есть кнопка, чтобы открыть «меню». Затем я хочу, чтобы меню NavHostFragment / скользило снизу. Когда я закрываю его, я хочу, чтобы NavHostFragment / меню выдвинулось вниз.

Это код деятельности. xml файл

  <fragment
    android:id="@+id/sceneform_fragment"
    android:name="com.google.ar.sceneform.ux.ArFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

  <fragment
    android:id="@+id/fragment_menu_nav_host"
    android:name="androidx.navigation.fragment.NavHostFragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:defaultNavHost="true"
    android:layout_marginTop="100dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:navGraph="@navigation/menu_navigation" />
</androidx.constraintlayout.widget.ConstraintLayout>

Что я пробовал

Создание потрясающих анимаций с использованием ConstraintLayout и ConstraintSet: https://proandroiddev.com/creating-awesome-animations-using-constraintlayout-and-constraintset-part-i-390cc72c5f75

Это, кажется, нарушает работу AR, поскольку мне нужен другой файл макета для того же Sceneform фрагмента ,

Я также попытался сохранить NavHostFragment в FragmentContainerView и анимировать транзакцию фрагмента. Однако, если NavHostFragment не находится в макете activity_main напрямую, кнопка «Назад» в телефоне не работает для навигации, похоже, что фрагменты не добавляются в «стек навигации».

Заранее спасибо!

...