[Flutter]AbsorbPointer 위젯

류재희·2022년 9월 15일
0
post-thumbnail

AbsorbPointer 위젯

나는 아직 필요로 한적이 없지만 미래에 필요할수도 있는 기능을 가지고 있다.

예를 들어 TextButton 위젯이 있다고 생각해보자.

TextButton(
            onPressed: () {},
            child: Text("버튼입니다"),
          ),

onPressed가 (){}로 적용된 버튼은 클릭할 경우 물결 효과가 적용되고 있다.

TextButton(
            onPressed: null,
            child: Text("버튼입니다"),
          ),

onPressed가 null인 버튼은 글자가 검정이 아닌 회색으로 비활성화 되어있다. 클릭해봐도 아무런 효과가 없다.

여기다가 AbsorbPointer위젯으로 감싸보자.

AbsorbPointer(
        absorbing: true,
        child: SizedBox(
          width: 100,
          height: 100,
          child: TextButton(
            onPressed: () {},
            child: Text("버튼입니다"),
          ),
        ),
      )

버튼은 활성화가 되지만 클릭은 안된다.

absorbing:true

이것이 중요한데 false로 바꾸면 버튼이 정상적으로 작동된다.

이것을 응용해서 특정상황에서 AbsorbPointer 위젯으로 감싸진 클릭(터치)이벤트들을 막을 수 있을것 같다.

그냥 true false로 바꿔주면된다.

profile
사람

0개의 댓글