본문 바로가기
new

NeverScrollableScrollPhysics: 스크롤 방지 기능

by ftbd 2024. 3. 6.

NeverScrollableScrollPhysics는 Flutter에서 스크롤을 완전히 방지하는 스크롤 물리 속성입니다. 이 속성은 다음과 같은 상황에서 유용합니다.

  • 스크롤이 필요하지 않은 위젯: 이미지, 텍스트 등 스크롤이 필요하지 않은 위젯을 감싸는 데 사용할 수 있습니다.
  • 스크롤을 제어해야 하는 위젯: 탭바, 슬라이더 등 스크롤 방향이나 범위를 제어해야 하는 위젯을 감싸는 데 사용할 수 있습니다.
  • 스크롤 충돌 방지: 여러 스크롤 가능한 위젯이 서로 가까이 있을 때 스크롤 충돌을 방지하기 위해 사용할 수 있습니다.

1. NeverScrollableScrollPhysics 사용 방법

NeverScrollableScrollPhysics를 사용하려면 다음과 같이 scrollPhysics 속성에 설정하면 됩니다.

 

Widget myWidget = ...;

myWidget = ScrollConfiguration(
  behavior: ScrollBehavior(),
  child: myWidget,
);

myWidget = SingleChildScrollView(
  physics: NeverScrollableScrollPhysics(),
  child: myWidget,
);

위 코드는 myWidget 위젯을 스크롤 불가능하게 설정합니다.

 

2. NeverScrollableScrollPhysics와 다른 스크롤 물리 속성 비교

스크롤 물리 속성 설명
AlwaysScrollableScrollPhysics 항상 스크롤 가능
BouncingScrollPhysics 스크롤 끝에서 튀는 효과
ClampingScrollPhysics 스크롤 끝에서 멈추는 효과
NeverScrollableScrollPhysics 스크롤 불가능

 

3. NeverScrollableScrollPhysics 활용 예시

  • 이미지 뷰어: 이미지를 확대/축소할 수 있지만 스크롤은 불가능하게 설정합니다.
  • 카드 목록: 카드 목록을 좌우로 스크롤할 수 있지만, 위아래 스크롤은 불가능하게 설정합니다.
  • 탭바: 탭바를 좌우로 스크롤할 수 있지만, 탭바 자체는 스크롤되지 않도록 설정합니다.