Google Maps API v2 SupportMapFragment inside ScrollView - users cannot scroll the map vertically

后端 未结 9 969
深忆病人
深忆病人 2020-11-27 13:01

I am trying to put a Google map inside a scroll view, so that the user can scroll down other contents to see the map. The problem is that this scroll view is eating up all t

9条回答
  •  萌比男神i
    2020-11-27 13:44

    Thank you for suggestions,

    After much try-and-error, pulling off my hairs and swearing at monitor and my poor Android test phone, I've figured that if I customise ScrollView, override onInterceptTouchEvent in which we return false when the event is on a map view no matter what, then the scrolling on a map does happen as expected.

    class MyScrollView(c:Context, a:AttributeSet) extends ScrollView(c,a) {
      val parent = c.asInstanceOf[MyActivity]
      override def onInterceptTouchEvent(ev:MotionEvent):Boolean = {
        var bound:Rect = new Rect()
        parent.mMap.getHitRect(bound)
        if(bound.contains(ev.getX.toInt,ev.getY.toInt))
          false
        else
          super.onInterceptTouchEvent(ev)
      }
    }
    

    This code is in Scala but you get the idea.

    Note I've ended up using a raw map view (as shown in android-sdks\extras\google\google_play_services\samples\maps\src\com\example\mapdemoRawMapViewDemoActivity.java). Guess you can do the pretty much same thing with fragments, I just never liked fragments in the first place.

    I think Google owes me an apology.

提交回复
热议问题