Kan*_*ika 7 android bottom-sheet material-components material-components-android
我有一个底部的应用程序打开了屏幕高度的 90%。我如何知道用户是否正在向上/向下拖动底部表。我读到我们可以使用 onSlide() 但偏移值是 NaN 并且有时非常奇怪,所以它看起来有点不可靠。任何帮助表示赞赏。提前致谢。
底单文档不起作用,但我想我想出了清除文档的方法:
隐藏状态为 -1.0,折叠状态为 0.0,展开状态为 1.0。
对我来说,我只看到它从 1 到 0,从 0 到 1。那是因为我没有隐藏状态,我的工作表总是以最高点显示。举个例子,如果你有一张永远不会被隐藏的工作表,你可以试试这个:
只需保留一个名为 oldOffSet 的属性变量,然后执行以下操作:
behavior.addBottomSheetCallback(object : BottomSheetBehavior.BottomSheetCallback() {
var oldOffSet = 0f
override fun onSlide(bottomSheet: View, slideOffset: Float) {
val inRangeExpanding = oldOffSet < slideOffset
val inRangeCollapsing = oldOffSet > slideOffset
oldOffSet = slideOffset
}
}
Run Code Online (Sandbox Code Playgroud)
小智 0
在bottomsheet中,我们可以使用BottomSheetBehavior访问它的行为,获取onStateChanged()中的所有状态。
final BottomSheetBehavior behavior = BottomSheetBehavior.from(bottomSheet);
behavior.setBottomSheetCallback(new BottomSheetBehavior.BottomSheetCallback() {
@Override
public void onStateChanged(@NonNull View bottomSheet, int newState) {
if (newState == BottomSheetBehavior.STATE_DRAGGING) {
behavior.setState(BottomSheetBehavior.STATE_EXPANDED);
}
}
@Override
public void onSlide(@NonNull View bottomSheet, float slideOffset) {
}
});
Run Code Online (Sandbox Code Playgroud)
BottomSheetBehavior.STATE_COLLAPSED
BottomSheetBehavior.STATE_EXPANDED
| 归档时间: |
|
| 查看次数: |
1471 次 |
| 最近记录: |