Flutter AbsorbPointer 와 IgnorePointer 의 차 이 를 분석 합 니 다.

Flutter 가 뭐 예요?
Flutter 는 플랫폼 간 모 바 일 앱 구축 을 위 한 Google 의 새로운 SDK 입 니 다.안 드 로 이 드 와 iOS 플랫폼 에서 모두 실행 할 수 있 는 코드 를 쓰 세 요.
AbsorbPointer
AbsorbPointer 는 사용자 의 입력 을 금지 하 는 컨트롤 입 니 다.예 를 들 어 버튼 의 클릭,입력 상자 의 입력,ListView 의 스크롤 등 이 있 습 니 다.버튼 의onPressed을 null 로 설정 하 는 것 과 같이 실현 할 수 있 습 니 다.그렇지만 AbsorbPointer 는 여러 구성 요소 에 대한 통 일 된 제어 제 를 제공 할 수 있 습 니 다.모든 구성 요소 에 대한 설정 이 필요 하지 않 습 니 다.
용법 은 다음 과 같다.

AbsorbPointer(
 child: Row(
  children: <Widget>[
   RaisedButton(onPressed: (){},),
   RaisedButton(onPressed: (){},),
   RaisedButton(onPressed: (){},),
   RaisedButton(onPressed: (){},),

  ],
 ),
)
기본적으로 이 단 추 는 클릭 이벤트 에 응답 할 지 여부 입 니 다.클릭 이벤트 에 응답 하려 면 false 로 설정 하면 됩 니 다.

AbsorbPointer(
 absorbing: false,
 ...
)
IgnorePointer
IgnorePointer 의 용법 은 AbsorbPointer 와 같 고 효과 가 같 습 니 다.용법 은 다음 과 같 습 니 다.

IgnorePointer(
 child: Row(
  children: <Widget>[
   RaisedButton(onPressed: (){},),
   RaisedButton(onPressed: (){},),
   RaisedButton(onPressed: (){},),
   RaisedButton(onPressed: (){},),
  ],
 ),
)
구별absorbing자체 가 클릭 이 벤트 를 받 아들 일 수 있 고 이 벤트 를 소모 할 수 있 으 며AbsorbPointer클릭 이 벤트 를 받 아들 일 수 없습니다.그 아래 의 컨트롤 은 클릭 이벤트(하위 컨트롤 이 아 닌)를 받 아들 일 수 있 습 니 다.
2 개의 상자 가 있 으 면 200 x200 의 빨간색 상자,100 x100 의 파란색 상자 가 있 습 니 다.파란색 상 자 는 빨간색 상자 위 에 가운데 에 표시 되 고 2 개의 상자 에 클릭 이 벤트 를 추가 합 니 다.다음 과 같 습 니 다.

return Container(
   height: 200,
   width: 200,
   child: Stack(
    alignment: Alignment.center,
    children: <Widget>[
     Listener(
      onPointerDown: (v) {
       print('click red');
      },
      child: Container(
       color: Colors.red,
      ),
     ),
     Listener(
      onPointerDown: (v) {
       print('click red');
      },
      child: Container(
       color: Colors.blue,
       width: 100,
       height: 100,
      ),
     ),
    ],
   ),
  );
파란색 상 자 를 누 르 면 결 과 를 인쇄 합 니 다:

flutter: click blue
파란색 상자 영역 이외 의 빨간색 상 자 를 누 르 면 결 과 를 인쇄 합 니 다:

flutter: click red
이때 파란색 상 자 를IgnorePointer로 감 싸 줍 니 다.

return Container(
 height: 200,
 width: 200,
 child: Stack(
  alignment: Alignment.center,
  children: <Widget>[
   Listener(
    onPointerDown: (v) {
     print('click red');
    },
    child: Container(
     color: Colors.red,
    ),
   ),
   Listener(
    onPointerDown: (v) {
     print('click blue self');
    },
    child: AbsorbPointer(
     child: Listener(
      onPointerDown: (v) {
       print('click blue child');
      },
      child: Container(
       color: Colors.blue,
       width: 100,
       height: 100,
      ),
     ),
    ),
   ),
  ],
 ),
);
파란색 상 자 를 누 르 면 다음 과 같이 인쇄 합 니 다.

flutter: click blue self
설명AbsorbPointer자체 가 클릭 이 벤트 를 받 았 습 니 다.AbsorbPointerAbsorbPointer로 바 꾸 고 다음 과 같이 인쇄 합 니 다.

flutter: click red
사건 을 클릭 하여 파란색 상 자 를 뚫 고 빨간색 상자 로,빨간색 상 자 는 클릭 사건 을 받 았 다.
필드 사용
1.업무 수요 에 따라 여러 구성 요 소 를 사용 하지 않 거나 사용 합 니 다.
2.업무 수요 에 따라 전체 앱 을 사용 하지 않 거나 사용 합 니 다.
커 뮤 니 케 이 션
Github 주소:https://github.com/781238222/flutter-do
170+구성 요소 상세 용법:http://laomengit.com
총결산
Flutter AbsorbPointer 와 IgnorePointer 의 차 이 를 분석 한 이 글 은 여기까지 입 니 다.Flutter AbsorbPointer 와 IgnorePointer 의 차이 점 에 대해 서 는 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!

좋은 웹페이지 즐겨찾기