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;
}
}
});