解决方案
所以,感谢this post,这是我的解决方案,我已经修改了一些代码来归档我的目标。
步骤 1 :: 为 MySupportMapFragment 创建 TouchableWrapper 类
第 2 步 :: 覆盖 dispatchTouchEvent() 并执行以下操作
public class TouchableWrapper extends FrameLayout {
public TouchableWrapper(Context context) {
super(context);
}
@Override
public boolean dispatchTouchEvent(MotionEvent ev) {
ViewParent v;
switch (ev.getAction()) {
case MotionEvent.ACTION_DOWN:
v = this.getParent();
v.requestDisallowInterceptTouchEvent(true);
break;
case MotionEvent.ACTION_UP:
v = this.getParent();
v.requestDisallowInterceptTouchEvent(false);
break;
}
return super.dispatchTouchEvent(ev);
}
}
STEP 3 :: 创建 MySupportMapFragment 类并将其与 TouchableWrapper 绑定
public class MySupportMapFragment extends SupportMapFragment {
public View mOriginalContentView;
public TouchableWrapper mTouchView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) {
mOriginalContentView = super.onCreateView(inflater, parent, savedInstanceState);
mTouchView = new TouchableWrapper(getActivity());
mTouchView.addView(mOriginalContentView);
return mTouchView;
}
@Override
public View getView() {
return mOriginalContentView;
}
}
第 4 步 :: 将您的原始 xml 地图片段更改为您的自定义片段
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mapFragment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_below="@+id/buttonBar"
class="com.myFactory.myApp.MySupportMapFragment"
/>
是的,这就是Google Map V2 可以拖入Navigating Drawer 的全部内容