我想出了自己。這很簡單。如果您使用Android的BottomSheetBehavior
實施底部工作表,然後在其onStateChanged()
方法中,您可以爲Google地圖執行相機動畫。這是一個攝像機動畫,在底部圖紙狀態發生變化並在CameraUpdateFactory.scrollBy(float, float)
的幫助下執行,允許您在x和y軸上移動攝像機位置。進一步的細節可以發現here。
我只是改變垂直y軸,因爲我想讓地圖垂直移動(或調整)並將其傳遞給mMap.animateCamera()
方法。 bs_height
是我在運行時計算的底部頁面的高度。
下面的代碼片段展示瞭如何:
@Override
public void onStateChanged(@NonNull View bottomSheet, int newState) {
switch (newState) {
case BottomSheetBehavior.STATE_COLLAPSED :
collapsedStateAnimation();
mMap.animateCamera(CameraUpdateFactory.scrollBy(0.0f, bs_height - 200));
break;
case BottomSheetBehavior.STATE_DRAGGING :
...
break;
case BottomSheetBehavior.STATE_EXPANDED :
mMap.animateCamera(CameraUpdateFactory.scrollBy(0.0f, bs_height + 200));
break;
}
}