我正在实现一个应用程序,我使用底部工作表和@ 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).
我仍在努力了解正在发生的事情,以便找到更好的解决方案.