안드로이드 코드
안드로이드) 스크롤뷰 안에 카카오지도
우딬
2020. 9. 23. 12:50
안녕하세요.
오늘은 스크롤뷰 안에 카카오 지도를 넣고
지도를 움직이려고 하는데
자꾸 스크롤뷰가 움직이는거 경험 하셨나요??
그 이유는 스크롤뷰가 그 터치 이벤트를 뺏어 간다는 것입니다.
그래서 그 부분을 해결하는 방법을 간단한 코드로 확인할 수 있습니다.
MapView mapView = new MapView(this);
ViewGroup mapViewContainer = (ViewGroup) findViewById(R.id.map_layout);
mapViewContainer.addView(mapView);
이게 카카오에서 제공하는 안드로이드 자바 코드 입니다.
여기서 터치 부분 이벤트를 넣는 부분은 mapView입니다.
ScrollView mainScrollView = findViewById(R.id.main_scrollview);
mapView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
int action = motionEvent.getAction();
switch (action) {
case MotionEvent.ACTION_DOWN:
mainScrollView.requestDisallowInterceptTouchEvent(true);
break;
case MotionEvent.ACTION_UP:
mainScrollView.requestDisallowInterceptTouchEvent(true);
break;
case MotionEvent.ACTION_MOVE:
mainScrollView.requestDisallowInterceptTouchEvent(true);
break;
}
return false;
}
});
우선 가장 바깥의 Scrollview를 불러오고,
mapView에 모션이벤트가 생길때
mainScrollView.requestDisallowInterceptTouchEvent(true);
스크롤에 터치이벤트를 뺏기지 않는다는 코드입니다.
이렇게 하면 문제없이 카카오지도를 사용하실 수 있을것 입니다 !!