Android 带有 FloatButton 的 BottomSheet
Android BottomSheet with FloatButton
如何使底部 sheet 和 FloatButton 的交互像 Google 地图中那样?
第一个屏幕截图显示了两次 FloatButtons.After 单击地图,第二个按钮更改图标并向上滚动并挂在 bottomSheet 边缘。(屏幕截图 2)。
这里有一个很好的入门参考:
Android Developer Blog on Bottom Sheets
为了进一步帮助您,请 post 现有代码和您尝试过的代码。
我假设 FAB 首先锚定到 MapView
的 right|bottom
并且与 BottomSheet
视图具有相同的高度。
一旦 BottomSheet
窥视到某个高度并且 BottomSheet
top 等于 FAB 高度的一半,然后一个新的锚点 id 附加到 FAB CoordinatorLayout.Params
,基本上就是 id BottomSheet
视图。
只是给你代码指针:
CoordinatorLayout.Behavior behavior = (CoordinatorLayout.Behavior)fab.getLayoutParams();
int boundary = fab.getTop() + (fab.getHeight() * 0.5);
//inside `BottomSheet` callback methods
if(sheetView.getTop() >= boundary){
//sheet is expanding or its peeking height was changed
behavior.setAnchorId(sheetView.getId());
} else if (sheetView.getTop() <= boundary){
//sheet is animating to collapse, being collapsed
behavior.setAnchorId(mapView.getId());
}
如何使底部 sheet 和 FloatButton 的交互像 Google 地图中那样? 第一个屏幕截图显示了两次 FloatButtons.After 单击地图,第二个按钮更改图标并向上滚动并挂在 bottomSheet 边缘。(屏幕截图 2)。
这里有一个很好的入门参考:
Android Developer Blog on Bottom Sheets
为了进一步帮助您,请 post 现有代码和您尝试过的代码。
我假设 FAB 首先锚定到 MapView
的 right|bottom
并且与 BottomSheet
视图具有相同的高度。
一旦 BottomSheet
窥视到某个高度并且 BottomSheet
top 等于 FAB 高度的一半,然后一个新的锚点 id 附加到 FAB CoordinatorLayout.Params
,基本上就是 id BottomSheet
视图。
只是给你代码指针:
CoordinatorLayout.Behavior behavior = (CoordinatorLayout.Behavior)fab.getLayoutParams();
int boundary = fab.getTop() + (fab.getHeight() * 0.5);
//inside `BottomSheet` callback methods
if(sheetView.getTop() >= boundary){
//sheet is expanding or its peeking height was changed
behavior.setAnchorId(sheetView.getId());
} else if (sheetView.getTop() <= boundary){
//sheet is animating to collapse, being collapsed
behavior.setAnchorId(mapView.getId());
}