8

So I been trying to use google maps lite fragment inside a scrollView and I haven't be able to show the map. After removing the the scrollView and leaving the fragment by it self, now is when you can see the map. I am just trying to understand why is that and also if there is any way possible to have this fragment to show at the end of my scrollView.

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:map="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.joe.goout.EventDetails"> <ImageView android:src="@mipmap/park1" android:layout_width="fill_parent" android:layout_height="150dp" android:scaleType="centerCrop" android:adjustViewBounds="true" android:id="@+id/imageView" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" /> <ScrollView android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@+id/imageView" android:id="@+id/scrollView" android:fillViewport="false"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Medium Text" android:id="@+id/textView" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" /> </ScrollView> </RelativeLayout> 
3
  • 1
    This seems to have already been answered: stackoverflow.com/questions/30525066/… Commented Aug 26, 2016 at 3:05
  • 1
    my problem is that the map fragment is not showing inside the scrollView. I am using google maps lite, I really don't know what is the map not showing inside the scrollView, but when I removed from the scrollView everything works good... Commented Aug 26, 2016 at 4:12
  • 1
    Have you tried nestedScrollView? That's relative new developer.android.com/reference/android/support/v4/widget/… Commented Aug 31, 2016 at 14:44

3 Answers 3

5

First you need to create a custom ScrollView class, like the following.

public class CustomScrollView extends ScrollView { public CustomScrollView(Context context) { super(context); } public CustomScrollView(Context context, AttributeSet attrs) { super(context, attrs); } public CustomScrollView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } @Override public boolean onInterceptTouchEvent(MotionEvent ev) { final int action = ev.getAction(); switch (action) { case MotionEvent.ACTION_DOWN: //Log.i("CustomScrollView", "onInterceptTouchEvent: DOWN super false" ); super.onTouchEvent(ev); break; case MotionEvent.ACTION_MOVE: return false; // redirect MotionEvents to ourself case MotionEvent.ACTION_CANCEL: // Log.i("CustomScrollView", "onInterceptTouchEvent: CANCEL super false" ); super.onTouchEvent(ev); break; case MotionEvent.ACTION_UP: //Log.i("CustomScrollView", "onInterceptTouchEvent: UP super false" ); return false; default: //Log.i("CustomScrollView", "onInterceptTouchEvent: " + action ); break; } return false; } @Override public boolean onTouchEvent(MotionEvent ev) { super.onTouchEvent(ev); //Log.i("CustomScrollView", "onTouchEvent. action: " + ev.getAction() ); return true; } } 

Then use the CustomScrollView class instead of ScrollView.

<CustomScrollView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/scrollView"> </CustomScrollView> 

And you are done! :D

Sign up to request clarification or add additional context in comments.

Comments

4
+25
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical"> <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/white"> <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical"> <ImageView android:id="@+id/imageView" android:layout_width="fill_parent" android:layout_height="150dp" android:layout_alignParentEnd="true" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:layout_centerInParent="true" android:adjustViewBounds="true" android:scaleType="centerCrop" android:src="@mipmap/park1" /> <Button android:id="@+id/shareBtn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/textView" android:layout_alignParentEnd="true" android:layout_alignParentRight="true" android:text="New Button" /> <TextView android:id="@+id/textView" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/imageView" android:padding="15dp" android:text="Medium Text" android:textColor="@color/black" /> <fragment xmlns:android="http://schemas.android.com/apk/res/android" xmlns:map="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/map" android:name="com.google.android.gms.maps.SupportMapFragment" class="com.google.android.gms.maps.SupportMapFragment" android:layout_width="fill_parent" android:layout_height="210dp" android:layout_below="@id/textView" android:layout_marginBottom="40dp" map:cameraZoom="13" map:liteMode="true" map:mapType="normal" tools:context=".EventDetails" /> </RelativeLayout> </ScrollView> </RelativeLayout> 

Comments

2

I solved it by adding the content into ScrollView and then wrapping the content inside of RelativeLayout.

<ScrollView android:layout_height="wrap_content" android:layout_width="match_parent" android:background="@color/white" xmlns:android="http://schemas.android.com/apk/res/android"> <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical"> <ImageView android:src="@mipmap/park1" android:layout_width="fill_parent" android:layout_height="150dp" android:scaleType="centerCrop" android:adjustViewBounds="true" android:id="@+id/imageView" android:layout_alignParentTop="true" android:layout_centerInParent="true" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="New Button" android:id="@+id/shareBtn" android:layout_above="@+id/textView" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" /> <TextView android:layout_height="wrap_content" android:layout_width="match_parent" android:text="Medium Text" android:textColor="@color/black" android:padding="15dp" android:layout_below="@id/imageView" android:id="@+id/textView" /> <fragment xmlns:android="http://schemas.android.com/apk/res/android" xmlns:map="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:name="com.google.android.gms.maps.SupportMapFragment" class="com.google.android.gms.maps.SupportMapFragment" android:id="@+id/map" android:layout_width="fill_parent" android:layout_height="210dp" android:layout_below="@id/textView" android:layout_marginBottom="40dp" map:cameraZoom="13" map:mapType="normal" map:liteMode="true" tools:context=".EventDetails"/> </RelativeLayout> </ScrollView> 

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.