Настроить анимацию слайдов на нижних листах Android в Java легко. Этот подход использует окно Android и сдвигает все вверх. Но проблема этого подхода возникает, когда мы хотим добавить OvershootInterpolator к его анимации. В таком случае между нижним краем нижнего листа и нижним краем экрана появляется зазор с длительностью OvershootInterpolator. (см. ниже)

Я хочу, чтобы анимация выброса влияла без перехода окон.

Моя попытка: я пытался анимировать свой макет с помощью objectAnimator или аналогичного инструмента. Но у этого подхода есть некоторые проблемы. Окна контейнера вырезают все по контуру. и когда макет нижнего листа достигает максимальной высоты и пытается применить OvershootInterpolator (пройти немного дальше и вернуться в текущую позицию), заголовок нижнего листа становится невидимым, пока не вернется в нормальное положение.
Вот мой тестовый макет и код.
BottomSheetDialog листDialog = новый BottomSheetDialog(this, R.style.TransparentBackgroundStyle); sheetDialog.setContentView(R.layout.bottom_sheet_dialog); Objects.requireNonNull(sheetDialog.getWindow()).setWindowAnimations(R.style.Slid); sheetDialog.getBehavior().setState(BottomSheetBehavior.STATE_EXPANDED); листДиалог.шоу(); Я пытался работать с BottomSheetBehavior, но мне не удалось анимировать (показать анимацию) нижний лист. Вместо этого я подписался на этот пост и успешно анимировал его во время взаимодействия с пользователем, а не в процессе показа или закрытия.
Можно ли использовать BottomSheetBehavior для анимации нижнего листа во время процесса отображения или закрытия?