안드로이드 개발 질문/답변
(글 수 45,052)
ScrollView1.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { // TODO Auto-generated method stub ScrollView2.dispatchTouchEvent(event); return false; } }); ScrollView2.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { // TODO Auto-generated method stub ScrollView1.dispatchTouchEvent(event); return false; } });
위와 같이 코딩 하였을때 둘중 하나에만 dispatchTouchEvent를 걸어줄때만 작동 합니다.
당연히 양쪽으로 걸면 무한반복되기 때문에 stackOverFlowError가 뜨는건 알겠는데.....
이렇게 사용을 하는 방법이 정말 없는걸까요?;;
이런저런 조건 생각도 해보고 클릭이벤트도 걸어보고 했지만 클릭 하지 않으면 발생하지 않기에 말짱 꽝 ㅜ
이런 작업 해보신분 있으신가요?
혹시 어떤 조건으로 작동 시켜야 원활하게 돌아갈까요?;
굳이 2개의 스크롤 뷰를 동기화 시킬 필요가 있나 싶은데요.
잘 생각해 보시면 답이 나옵니다.
스크롤뷰 1, 2번 중 먼저 터치 이벤트가 들어오는 뷰가 무엇인지 검사합니다.
전역변수 1개를 만드시고터치 다운 이벤트가 들어오면 해당 변수 값을 바꿔 줍니다.
그 후 어느 뷰에서 터치 이벤트가 들어왔는지 알고 있으므로 다른 뷰에 이벤트를 넘겨줍니다.
이렇게 하면 잘 동작 합니다.