Допустим, у нас есть BottomNavigationBar с FAB наверху. При использовании этой настройки и отображении Snackbar, Snackbar должен появляться над BottomNavigationBar и нажимать вверх / вниз FAB при появлении / закрытии.
Это обычный сценарий использования CoordinatorLayout. Можно ли также создать эту анимацию с помощью нового MotionLayout?
В трекере ошибок есть проблема, но она уже закрыта, потому что OP четко не сформулировал вопрос (https://issuetracker.google.com/issues/112665540)
Проблемы, с которыми я столкнулся при попытке: у нас нет доступа к идентификатору макета Snackbar. У нас также нет доступа к общему XML-файлу Snackbar, поэтому мы не можем установить его ограничения.
ОБНОВЛЕНИЕ. Я понимаю, что фрагмент кода поможет в качестве отправной точки для ответа на этот вопрос. Но какой бы фрагмент кода я ни придумал, он совершенно бесполезен. Я выделил 2 основные проблемы:
Я не знаю идентификатор макета Snackbar. Поэтому я не могу использовать его при написании описания сцены.
Даже если бы я мог создать описание сцены (например, State1: SnackBar visible, State2: Snackbar not visible). Мне пришлось бы запускать эти переходы между сценами вручную. Это означает, что я бы воссоздал свою собственную Snackbar вместо того, чтобы использовать исходную Snackbar, как задумано.
КОММЕНТАРИИ: @mikejonesguy Да, на мой взгляд, они похожи. Не то же самое, но похожее. И MotionLayout также выполняет ту работу, которую вы описали: координирует взаимодействие между его подпредставлениями. Замените «координировать» на «анимировать», и вы поймете мою точку зрения. Также обратите внимание на обработчики OnSwipe / OnClick. MotionLayout все еще очень свежий, но я думаю, что в будущем он заменит CoordinatorLayout так же, как ConstraintLayout заменил RelativeLayout. Может я ошибаюсь, а может и нет ... время покажет.
ЗАКЛЮЧЕНИЕ. Насколько я понимаю, кажется (пока) нет способа достичь того, чего я хочу, только с помощью MotionLayout. Если это возможно, когда-нибудь я дополню этот вопрос рабочим примером. Простите за невозможную награду ... :)