0

我的应用程序包含一个底页,我正在使用以下方法来更改其状态

 public void toggleBottomSheet() {
    if (sheetBehavior.getState() != BottomSheetBehavior.STATE_EXPANDED) {
        sheetBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
    } else {
        sheetBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
    }
}

但在某些设备中,它没有正确显示动画(从下到上),它像弹出窗口一样直接打开。如何添加动画,使它看起来是从底部来的。

4

1 回答 1

0

不确定“在某些设备中”这一点,能否请您提及android版本和其他规格?我的建议是将 BottomSheetBehavior.BottomSheetCallback 添加到 BottomSheetBehavior

并在其 onSlide 方法中放置一个 log.d() 来检查它是否真的滑动。这将有助于找出原因。此外,请确保您添加了正确的 BootmSheetBehavior,您可以通过显式设置peeckHeight来尝试。

  yourBottomSheetBehavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback()
    {
        @Override
        public void onStateChanged(@NonNull View view, int newState)
        {
            if (newState == BottomSheetBehavior.STATE_EXPANDED)
            {

            }
        }

        @Override
        public void onSlide(@NonNull View view, float v)
        {
            Log.d("tag", "sliding from bottom to top");

        }
    });
于 2020-02-05T07:02:45.017 回答