본문 바로가기
Flutter/Flutter FAQ

Flutter 플러터의 AbsorbPointer와 IgnorePointer의 차이, Flutter AbsorbPointer vs IgnorePointer difference

by 베타코드 2023. 9. 26.
반응형

질문


flutter에서 AbsorbPointerIgnorePointer의 차이점은 무엇인가요?

문서에는 다음과 같이 언급되어 있습니다:

AbsorbPointer는 자체에서 히트 테스트를 종료하여 하위 트리가 포인터 이벤트를받지 못하게합니다.

IgnorePointer는 자체적으로 히트 테스트에 투명하지만 하위 항목이 포인터 이벤트를받지 못하도록합니다.

두 가지 사이의 실제 차이점을 이해하지 못했습니다.


답변


차이점은 두 위젯이 서로 겹치고 클릭을 받을 수 있는 경우입니다.

빨간색과 파란색 사각형을 생각해보세요. 두 사각형 모두 클릭 가능하며, 파란색 사각형이 빨간색 사각형 위에 작게 겹쳐져 있습니다:

Stack(
  alignment: Alignment.center,
  children: [
     Container(color: Colors.red),
     Container(width: 42, height: 42, color: Colors.blue),
  ],
)

IgnorePointer/AbsorbPointer를 사용하지 않을 경우, 파란색 사각형을 탭하면 파란색에만 클릭 이벤트가 전송되고 빨간색은 아무런 이벤트도 받지 않습니다.

그 상황에서 파란색 사각형을 AbsorbPointer로 감싸면 파란색 사각형을 탭할 때, 파란색 사각형과 빨간색 사각형 둘 다 클릭 이벤트를 받지 않습니다.

대신 IgnorePointer를 사용하면, 파란색 사각형을 탭할 때 빨간색 사각형이 클릭 이벤트를 받게 됩니다.

반응형

댓글