底部工作表内的谷歌地图视图

Ham*_*han 5 android google-maps bottom-sheet

我想创建一个像示例图像这样的视图

其中想要在底部工作表片段中显示谷歌地图。

我试过的

我试图在底部表单对话框片段中显示地图,但输出不是我想要的。

我需要的是一个固定大小的视图,它应该能够显示地图。目前,我的视图还响应用户手势以更改底部工作表状态,但我需要手势仅在地图上工作(例如用于地图平移)。

Har*_*tel 10

当我们在 上使用地图时BottomSheet,它会与触摸事件发生冲突。所以,需要禁止触摸BottomSheet

请在下面找到一个允许地图移动的自定义类。

public class BottomSheetMapView extends MapView {

public BottomSheetMapView(Context context) {
    super(context);
}

public BottomSheetMapView(Context context, AttributeSet attrs) {
    super(context, attrs);
}

public BottomSheetMapView(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
}

public BottomSheetMapView(Context context, MapboxMapOptions options) {
    super(context, options);
}
@Override
public boolean onInterceptTouchEvent(final MotionEvent event) {
    switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN:
            getParent().requestDisallowInterceptTouchEvent(true);
            break;
        case MotionEvent.ACTION_UP:
            getParent().requestDisallowInterceptTouchEvent(false);
            break;
        default:
            break;
    }

    return super.onInterceptTouchEvent(event);
}
Run Code Online (Sandbox Code Playgroud)

}

我正在使用 Mapbox。所以,我在 xml 中使用com.example.BottomSheetMapView而不是com.mapbox.mapboxsdk.maps.MapView。同样,您可以使用谷歌地图。

这满足您的要求。