Android 带有 FloatButton 的 BottomSheet

Android BottomSheet with FloatButton

如何使底部 sheet 和 FloatButton 的交互像 Google 地图中那样? 第一个屏幕截图显示了两次 FloatButtons.After 单击地图,第二个按钮更改图标并向上滚动并挂在 bottomSheet 边缘。(屏幕截图 2)。

First Screenshot

Second Screenshot

这里有一个很好的入门参考:

Android Developer Blog on Bottom Sheets

为了进一步帮助您,请 post 现有代码和您尝试过的代码。

我假设 FAB 首先锚定到 MapViewright|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());
}