Java Can';t在Listview android中拖动或缩放谷歌地图

Java Can';t在Listview android中拖动或缩放谷歌地图,java,android,listview,Java,Android,Listview,我已经在列表视图中添加了一个映射片段。它工作正常,但不能拖动或缩放 MainActivity.java mapviewheader=getActivity().GetLayoutFlater().inflate(R.layout.view\u标题,mListView,false); FrameLayout map\u container=(FrameLayout)mapviewheader.findViewById(R.id.map\u container); FragmentTransacti

我已经在
列表视图中添加了一个映射片段。它工作正常,但不能拖动或缩放

MainActivity.java

mapviewheader=getActivity().GetLayoutFlater().inflate(R.layout.view\u标题,mListView,false);
FrameLayout map\u container=(FrameLayout)mapviewheader.findViewById(R.id.map\u container);
FragmentTransaction mTransaction=this.getChildFragmentManager().beginTransaction();
mapFragment=new SupportMapFragment().newInstance();
//mapFragment.setOnTouchListener
添加(map_container.getId(),mapFragment);
mTransaction.commit();
试一试{
初始化(getActivity());
}捕获(例外e){
e、 printStackTrace();
}
mListView.setParallaxView(mapviewheader);
查看标题.xml



我曾尝试使用
onTouchListener(…)
,但它对我不起作用。

这是因为ListView已经捕捉到了触摸事件。你必须让你的地图碎片捕捉它们。为此,您可以扩展正在使用的
MapSupportFragment

公共类TouchableGoogleMapFragment扩展了SupportMapFragment{
私家侦探;
@凌驾
创建视图上的公共视图(LayoutFlater LayoutFlater、ViewGroup ViewGroup、Bundle savedInstance){
视图布局=super.onCreateView(LayoutFlater、viewGroup、savedInstance);
TouchableWrapper frameLayout=新的TouchableWrapper(getActivity());
//让它隐形
setBackgroundColor(getResources().getColor(android.R.color.transparent));
((视图组)布局)。添加视图(框架布局,
新建ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_父级,ViewGroup.LayoutParams.MATCH_父级);
返回布局;
}
公共void setListener(OnTouchListener侦听器){
mListener=监听器;
}
公共接口侦听器{
公开摘要无效onTouch();
}
公共类TouchableWrapper扩展了FrameLayout{
公共TouchableWrapper(上下文){
超级(上下文);
}
@凌驾
公共布尔dispatchTouchEvent(MotionEvent){
开关(event.getAction()){
case MotionEvent.ACTION\u DOWN:
mListener.onTouch();
打破
case MotionEvent.ACTION\u UP:
mListener.onTouch();
打破
}
返回super.dispatchTouchEvent(事件);
}
}
}
然后,在您的
main活动中
当用户触摸片段时,您必须
requestDisallowWinterCeptTouchEvent(true)

//拦截触摸事件
setListener(新的TouchableGoogleMapFragment.OnTouchListener(){
@凌驾
公开无效onTouch(){
mScrollView.requestDisallowWinterCeptTouchEvent(true);
}
});

我在一个片段中使用了它,当我编写mapFragment.SetListener时出现了错误,但是您使用的是新的片段对象吗?而不是
mapFragment=new SupportMapFragment().newInstance()
您正在使用
mapFragment=new TouchableGoogleMapFragment()