我正在为自己的布局之一使用BottomSheet View 。对于一个非常特殊的情况,我需要BottomSheet的动画持续时间,该动画持续时间通过setState(...)方法在布局中滑动。应该是大约400毫秒左右,但我不希望在这种情况下没有一个“魔术”数字。
最佳答案
是的,您可以在 Bottom Sheet 中添加动画。
H
// init the bottom sheet behavior
BottomSheetBehavior bottomSheetBehavior = BottomSheetBehavior.from(mBottomSheet);
// change the state of the bottom sheet
bottomSheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
// set callback for changes
bottomSheetBehavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() {
@Override
public void onStateChanged(@NonNull View bottomSheet, int newState) {
// Called every time when the bottom sheet changes its state.
}
@Override
public void onSlide(@NonNull View bottomSheet, float slideOffset) {
if (isAdded()) {
animateBottomSheetArrows(slideOffset);
}
}
});
}
private void animateBottomSheetArrows(float slideOffset) {
// Animate counter-clockwise
mLeftArrow.setRotation(slideOffset * -180);
// Animate clockwise
mRightArrow.setRotation(slideOffset * 180);
}
关于android - BottomSheet动画时长,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51720891/