Android BottomSheetBehavior回调方法onSlide()给出了令人困惑的slideOffset值

我正在实现一个应用程序,我使用底部工作表和@ string / bottom_sheet_behavior定义的行为.另外,我以编程方式设置BottomSheetBehavior.BottomSheetCallback(),因为我想使用onSlide()方法为填充设置动画.因此我真的需要slideOffset值来计算要设置的新填充.

我读了
docs.他们说当状态介于隐藏和折叠状态之间时,值的范围是-1到0.当我的手机或平板电脑处于纵向模式且独立于Android版本时,我才能看到此行为.但是在横向模式下,范围从1到-1.

这里详细介绍了从隐藏到扩展的底页的值历史记录:

D/SLIDE: -0.86160713  
D/SLIDE: -0.5714286  
D/SLIDE: -0.29910713  
D/SLIDE: -0.0625  
D/SLIDE: 0.11382114  
D/SLIDE: 0.27235773  
D/SLIDE: 0.40650406  
D/SLIDE: 0.51626015  
D/SLIDE: 0.6300813  
D/SLIDE: 0.69512194  
D/SLIDE: 0.75609756  
D/SLIDE: 0.8130081  
D/SLIDE: 0.8577236  
D/SLIDE: 0.8943089  
D/SLIDE: 0.9186992  
D/SLIDE: 0.9430894  
D/SLIDE: 0.9593496  
D/SLIDE: 0.97154474  
D/SLIDE: 0.9796748  
D/SLIDE: 0.9878049  
D/SLIDE: 0.9918699  
D/SLIDE: 0.99593496  
D/SLIDE: 1.0

我只在按钮点击时设置了底部工作表的新状态.
所需的值将从-1开始并以0.0结尾,其间的粒度更精细.在这段历史中,价值也会增加,但它们会增加到1.
有没有人不得不面对同样的奇怪行为,可以给我一个暗示我缺少的东西?
如果需要任何其他代码,我会更新我的问题.

提前致谢.
彼得

最佳答案 我有同样的问题,我不能说问题是固定的,因为BottomSheetBehavior.BottomSheetCallback()的onSlide方法不符合
documentation(值从-1到1),但至少我能够通过将峰高设置为0来标准化,如下所示:

bottomSheetBehavior.setPeekHeight(0);

添加此行后,我看到onSlide方法始终具有正值(0 – 1).

我仍在努力了解正在发生的事情,以便找到更好的解决方案.

点赞