Flutter AbsorbPointer 와 IgnorePointer 의 차 이 를 분석 합 니 다.
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,
...
)
IgnorePointerIgnorePointer 의 용법 은 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
자체 가 클릭 이 벤트 를 받 았 습 니 다.AbsorbPointer
을AbsorbPointer
로 바 꾸 고 다음 과 같이 인쇄 합 니 다.
flutter: click red
사건 을 클릭 하여 파란색 상 자 를 뚫 고 빨간색 상자 로,빨간색 상 자 는 클릭 사건 을 받 았 다.필드 사용
1.업무 수요 에 따라 여러 구성 요 소 를 사용 하지 않 거나 사용 합 니 다.
2.업무 수요 에 따라 전체 앱 을 사용 하지 않 거나 사용 합 니 다.
커 뮤 니 케 이 션
Github 주소:https://github.com/781238222/flutter-do
170+구성 요소 상세 용법:http://laomengit.com
총결산
Flutter AbsorbPointer 와 IgnorePointer 의 차 이 를 분석 한 이 글 은 여기까지 입 니 다.Flutter AbsorbPointer 와 IgnorePointer 의 차이 점 에 대해 서 는 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 부 탁 드 리 겠 습 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Flutter】DateTime 전월의 일수를 취득한다달의 일수를 취득할 필요가 있어, 의외로 수요 있을까라고 생각했으므로 비망록 정도에 남겨 둡니다. DateTime 날짜에 0을 입력하면 전월 DateTime이 됩니다. 2021년 3월 0일 = 2021년 2월 28일...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.