보름을 넘게 삽질 했는데 답이 안나와서 처음으로 질문을 올려 봅니다.

잠시 연구 목적으로라도 관심을 가져 주세요 ㅠ_ㅜ

 

어려운줄 알지만. 맨땅에 헤딩하는 식으로.

리스트뷰에 커스텀어댑터로 동적으로 갤러리를 넣었습니다. (여기까지는 일반적인 방법으로 구현함)

 

그런데 터치 이벤트 처리가 생각처럼 정상적으로 작동이 안되더라고요.

대부분 이런 시도는 안해본건지, 다들 포기해서 그런건지...국내에는 관련자료도 없는것 같고요. (국내 무한 검색해봄) ㅠ_ㅜ

 

터치 이벤트가 리스트뷰와 갤러리를 왔다 갔다 합니다.

특징적인것은 처음 로딩후에는, 리스트뷰 안의 갤러리가 터치이벤트를 제대로 먹지 않고.

리스트뷰를 상하로 왔다갔다 몇번 한후부터 갤러리가 터치 이벤트에 반응하네요. 버벅거리면서 좌우로요.

최초 시작후 상하 이동이 여러번 없으면 갤러리가 갱신되지 않는거 같음.

 

추가로 setItemsCanFocus(false); 인데도...

리스트뷰의 setOnItemClickListener 리스너 미작동

(아마 안에 갤러리뷰가 있어서 그런걸로 사료됨)

 

#좀 무거운,동적인 자료라서, 액티비티의 onCreate 에서 정적으로 최초 전개해서 사용 하기는 무리라.

어쩔 수 없는 선택으로 어댑터뷰를 이용할 수 밖에 없었습니다 ㅠ_ㅜ

 

리스트뷰안에 갤러리가 있다 보니 터치 이벤트가 리스트뷰를 거쳐 들어가면서 바뀌어 발생하는 문제로 일단 보고.

 

1. 기본 안드로이드 소스의 "리스트뷰(ListView)와 갤러리(Gallery) " 소스를 참고하면서.

=> 완벽하게 분석하기는 무리 였습니다. ㅠ_ㅜ

 

2. "안드로이드 터치이벤트 디스패치" 단계를 보면서 (공부 많이 되었음;;)

http://blog.naver.com/iwillhackyou?Redirect=Log&logNo=110106725477

 

3. 아래와 같은 외국 관련자료를 참고해 보았는데요;;

http://stackoverflow.com/questions/4184382/how-to-implement-both-ontouch-and-also-onfling-in-a-same-listview

http://stackoverflow.com/questions/5481814/listview-horizontal-fling-gesture

http://stackoverflow.com/questions/3249832/android-listview-inside-gallery-makes-the-scrolling-not-smooth

http://stackoverflow.com/questions/7166920/make-a-listview-behaviour-like-a-vertical-gallery

http://stackoverflow.com/questions/3171452/scrollview-and-gallery-interfering

http://stackoverflow.com/questions/6072104/android-how-to-populate-listview-inside-gallery

http://stackoverflow.com/questions/5642671/android-listviews-inside-gallery-how-to-get-scrolling-clicking-and-swiping-li

http://stackoverflow.com/questions/3921138/gesture-in-listview-android

http://stackoverflow.com/questions/4576080/android-embedding-listview-inside-gallery

 

잔머리 굴려보다가 ㅠ_ㅜ

리스트뷰를 상속받은 후에 BetterListView extends ListView

onInterceptTouchEvent(MotionEvent ev)  / dispatchTouchEvent(MotionEvent ev)  / onTouchEvent(MotionEvent ev)  오버라이딩

 

onInterceptTouchEvent(MotionEvent ev) 함수에서 TURE 리턴함으로써,

리스트뷰 안의 하위(갤러리뷰)로가는 터치 이벤트를 다 막아 버리고.

 

리스트뷰의 dispatchTouchEvent(MotionEvent ev) 에서 터치이벤트를 다 받아서.

 

onTouchEvent(MotionEvent ev) 내에서

상하 좌우 터치를 구분해서

좌우 이벤트이면 갤러리로 ㅠ_ㅜ

상하 이벤트 이면 super.onTouchEvent(ev); 로 보내 버렸습니다;;

 

그런데 모랄까...

위에서 말씀드린,

리스트뷰를 상하로 왔다갔다 몇번 한후부터 갤러리가 터치 이벤트에 반응하네요. 버벅거리면서 좌우로요.

최조 시작후 상하 이동이 여러번 없으면 갤러리가 갱신되지 않는거 같음.

ㅡㅡ;; 이문제는 없어지지 않는듯 보입니다.

# 특이한것은, 리스트뷰의 마지막 아이템은 왼일인지 따로;; (테스트 아이템이 3줄인데 3번째꺼 갤러리)는 스무스하게 작동을;;

# 추가로 ㅡㅡ 디버그 모드에서는 정상적으로 터치이벤트들이 잘갑니다. 일반 Run 과 기기에서만 비정상 작동;;

 

상속 및 함수 오버라이딩과, 터치이벤트 디스패치되는 단계 조작으로 해결할 수 없는건가요? ㅠ_ㅜ

공부는 많이 되고 있는데 ㅠ_ㅜ 시간도 오래걸리고 도저히 답이 안나오네요 ㅠ_ㅜ

추석에도 방콕해서 이것만 연구했습니다.

결국에는 리스트뷰 소스를 통째로 복사해서 커스텀 해야 되는건지 심각하게 고민중입니다.

혹시 구현해 보신분 안계신가요??

 

아래과 같은 레이아웃 입니다. 밖에는 리스트뷰 그안에 갤러리뷰 +_+"

 

img.jpg

 

안드로이드펍 관련 게시글 모두 검색후 중복 게시물 없음 확인했습니다.

공지사항 읽었습니다.

 

ps. 일부 메소드<-> 함수 등 단어 선택이 잘못된 점은 양해 부탁드립니다. 여러 언어를 쓰다 보니까 편한대로 말이 막나가네요 ㅠ_ㅜ

무조건 해결방법을 달라고 올린것보다는 ㅠ_ㅜ

이런 문제를 격고 계신분이 있으면 같이좀 연구해 보자는 취지에서 ㅠ_ㅜ 참고 자료 링크도 같이 올렸으니.

관심 있으신 분들은 같이좀 ㅠ_ㅜ 연구 부탁드립니다 ㅠ_ㅜ