스크롤뷰 안에 스크롤 가능한 뷰들(맵뷰, 리스트뷰, 그리드뷰 등)을 구성 했을 경우 자식 스크롤뷰에서 스크롤시에 자식이 스크롤 되지 않고 부모가 스크롤 이벤트를 받아서 움직인다. 이를 방지하기위해 자식이 이벤트 처리 동안 부모의 이벤트를 무시 되게 처리 해야 한다.

#xml
 
<ScrollView
	android:id="@+id/calladd_sv"
	android:layout_width="match_parent"
	android:layout_height="match_parent"
	android:fillViewport="true">

	<LinearLayout
		android:layout_width="match_parent"
		android:layout_height="wrap_content"
		android:orientation="vertical">
		<RelativeLayout
			android:id="@+id/calladd_map_rect_rl"
			android:layout_width="match_parent"
			android:layout_height="match_parent">
		</RelativeLayout>
	</LinearLayout>
</ScrollView>

#java
        scrollView = (ScrollView)findViewById(R.id.calladd_sv);
        mMapView.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View v, MotionEvent event) {
                scrollView.requestDisallowInterceptTouchEvent(true);
                return false;
            }
        });

'프로그래밍 > Android Tip' 카테고리의 다른 글

Android 개발 가이드  (0) 2019.12.30
ActivityLifecycleCallbacks, LifecycleObserver, LifecycleOwner  (0) 2018.11.13
[Android] Aquery Image  (0) 2017.08.07
[Android] Aquery Network  (0) 2017.08.07
[Android] 내부 저장소 경로  (0) 2017.06.28

+ Recent posts