Поведение SlidingPanelUp с BottomNavigationView? - PullRequest
0 голосов
/ 23 сентября 2019

Как можно добиться этого поведения с помощью скользящей панели umano и скользящего вида сверху, скользящего поверх друг друга?

Поскольку для перемещения скользящей панели Umano требуется 2 дочерних макета(основной макет и макет слайдера), где я должен добавить вид навигации?На данный момент мой макет выглядит следующим образом:

<RelativeLayout>

     <SlidingPanelUp layout_above="bottom_navigation_view">

     <(Main)CoordinatorLayout>
     <(Slider)LinearLayout/>
     <(Main)/CoordinatorLayout>

     </SlidingPanelUp>

<BottomNavigationView alignParentBottom="true"/>

</RelativeLayout>

Прямо сейчас, когда слайдер занимает весь экран, я должен скрыть нижнюю навигацию, а когда слайдер свернут или закрыт, я должен снова сделать навигацию видимой.

Проблема в том, что я использую метод "setVisibility" на панели навигации, и он просто появляется и исчезает из ниоткуда, и переход действительно ужасен.

Я пытался использовать анимацию, но скользящая анимация из SlidingPanel быстрее, чем моя пользовательская анимация, поэтому навигация всегда заканчивается сверху (в основном, layout_above = "bottom_navigation_view" 'не работает).

Есть идеи, как сделать его таким же плавным, как SoundCloud?

Ответы [ 2 ]

0 голосов
/ 24 сентября 2019

В конце концов я сделал то, что сказал @Gabriele Mariotti, и реализовал BottomSheetBehavior .Для анимации, подобной SoundCloud, я использовал: этот пост .

Спасибо всем!

0 голосов
/ 23 сентября 2019

У меня нет времени, чтобы создать пример для вас, но посмотрите на MotionLayout .По сути, вы определяете 2 набора ограничений в xml: первая сцена позиционирует все как на начальном экране, а вторая сцена позиционирует все как после перемещения панели вверх.Затем вы используете тег onSwipe (также в scene-xml), чтобы определить движение вверх-вниз и то, что View должно быть чувствительным для этого скользящего действия.

Более подробную информацию можно найти здесь: https://medium.com/google-developers/introduction-to-motionlayout-part-i-29208674b10d

Это длинное сообщение в блоге, но оно того стоит, поскольку этот новый макет действительно мощный и довольно простой в использовании.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...