I am having a NestedScrollView as a parent and Fragment containing googleMap as its child. When Ever I scroll downwards or upwards in map the NesetdScrollView is scroll and I am unable to scroll inside the map. Till now I have tried a solution from stack overflow by creating a transparent Image but it didn't worked for me.
XML:
<android.support.v4.widget.NestedScrollView android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@+id/car_progress" android:id="@+id/nested_scroll" android:visibility="gone" > ............ ............ <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/first_section" android:visibility="gone" android:id="@+id/map_wrapper" android:orientation="vertical" android:layout_marginTop="10dp" > <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/dealer_location" android:textAllCaps="true" android:textColor="@color/colorPrimary" style="@style/BoldStyle" android:layout_marginLeft="@dimen/single_title_dimen" android:layout_marginRight="@dimen/single_title_dimen" android:id="@+id/dealer_head" /> <fragment xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="200dp" android:id="@+id/map" android:name="com.google.android.gms.maps.SupportMapFragment" android:layout_below="@+id/dealer_head" /> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/imagetrans" android:layout_alignTop="@+id/map" android:layout_alignBottom="@+id/map" android:layout_alignEnd="@+id/map" android:layout_alignRight="@+id/map" android:layout_alignLeft="@+id/map" android:layout_alignStart="@+id/map" android:src="@android:color/transparent"/> </RelativeLayout> ..... ..... </android.support.v4.widget.NestedScrollView> Code:
transImg.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { int action = event.getAction(); switch (action) { case MotionEvent.ACTION_DOWN: // Disallow ScrollView to intercept touch events. nv.requestDisallowInterceptTouchEvent(true); // Disable touch on transparent view return false; case MotionEvent.ACTION_UP: // Allow ScrollView to intercept touch events. nv.requestDisallowInterceptTouchEvent(false); return true; case MotionEvent.ACTION_MOVE: nv.requestDisallowInterceptTouchEvent(true); return false; default: return true; } } });