본문 바로가기
안드로이드 코드

안드로이드) 스크롤뷰 안에 카카오지도

by 우딬 2020. 9. 23.

안녕하세요.

 

오늘은 스크롤뷰 안에 카카오 지도를 넣고

 

지도를 움직이려고 하는데

 

자꾸 스크롤뷰가 움직이는거 경험 하셨나요??

 

그 이유는 스크롤뷰가 그 터치 이벤트를 뺏어 간다는 것입니다.

 

그래서 그 부분을 해결하는 방법을 간단한 코드로 확인할 수 있습니다.

 

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

 

스크롤에 터치이벤트를 뺏기지 않는다는 코드입니다.

 

이렇게 하면 문제없이 카카오지도를 사용하실 수 있을것 입니다 !!

 

댓글