GestureDetector의 터치 범위

2023. 12. 13. 23:05Flutter

반응형

GestureDetector를 사용하다 보면 분명 눌렀는데 누른 처리가 되지 않는 경우를 볼 수 있다

GestureDetector는 터치 범위가 실제 위젯의 크기만큼 만큼 이기 때문이다

 

Container(
	padding: EdgeInsets.all(20.w),
	color: Colors.white,
	child: GestureDetector(
		onTap: () => print("CLICK!"),
		child: Row(
			mainAxisAlignment: MainAxisAlignment.spaceBetween,
			children: [
				Text("메뉴이름"),
				Icon(Icons.arrow_forward),
			],
		),
	),
)

이 상태에서 아무리 흰색 container 부분을 클릭해도 print가 실행되지 않는다

print를 하기위한 터치 범위는 딱 Text와 Icon 위젯 부분만 해당된다.

 

전체 container를 클릭 하기 위해선

behavior: HitTestBehavior.translucent

 

GestureDetector에 해당 속성을 추가해 주면 된다.

반응형