如何编写像可以向上或向下解除的视图的BottomSheet

时间:2017-04-26 09:06:12

标签: android android-layout bottom-sheet

过去几天我一直在网上搜索,但无济于事。我尝试编写类似BottomSheetDialog的代码,可以向上或向下解除(滑出视图)。

如果这样的视图将从头开始编码,则用例如下:视图填充整个屏幕,可以向上或向下拖动(仅垂直移动)。拖动和释放时,视图应具有速度并相应地保持移动。一旦视图离开屏幕,就会触发回调,指示视图是向上还是向下移动。

我不希望答案交给我。我假设我必须从头开始编写类似这样的代码。我不知道从哪里开始。我可以使用哪些Android组件(ViewDragHelper等)来创建这样的东西?我只使用OnTouchListener取得了一些成功,检查MotionEvent.ACTION_MOVE标记并使用收到的动作事件数据来修改视图LayoutParams如图所示here。那我怎么谈速度?

1 个答案:

答案 0 :(得分:1)

我最终根据@azizbekian的建议修改了格子花呢应用中的BottomSheet

最值得注意的更改是在computeSettleDuration方法和clampViewPositionVertical中找到的ViewDragHelper.Callback回调中进行的。

让它按预期工作非常容易。可以查看源代码here