Til. 안드로이드 터치 우선순위 관리하기 scrollview 안에 touch 이벤트 처리

Devback·2021년 3월 26일
1

안드로이드

목록 보기
1/1
post-thumbnail


안드로이드 개발을 하다보면 Scroll기능 때문에 애를 많이 먹게 되는것 같다.
ScrollView 안에 SeekBar와 같이 터치를 해야하는 위젯이 있으면 ScrollView가 SeekBar의 터치이벤트를 먹어 버린다.

그래서 이런 현상을 막기위해서는 우선순위를 정해야 하는데 약간의 삽질을 통해서 해결할 수 있었다. 후..

Scrollview안에 SeekBar가 있다고 가정해보겠다.

requestDisallowInterceptTouchEvent 사용하기

requestDisallowInterceptTouchEvent는 부모에게 Touch Event를 빼앗기지 않게 할 수 있다.
ex)
자식.setOnTouchListener{v, event -> 부모.requestDisallowInterceptTouchEvent(true) }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
		
        init()
    }
    
    
    private fun init() {
    	seekBar?.setOnTouchListner { v, event -> 
        	scrollView?.requestDisallowInterceptTouchEvent(true)
            return@setOnTouchListener false
        
        }
    }

참고 :
https://stackoverflow.com/questions/9000068/increasing-touch-priority-of-a-seekbar
https://mparchive.tistory.com/186

profile
나랑 같이 개발할 사람🖐

0개의 댓글