본문 바로가기
Flutter/Flutter FAQ

Flutter: 요청에 따라 화면 방향 설정 및 잠금하는 방법, Flutter: How to set and lock screen orientation on-demand

by 베타코드 2023. 5. 17.
반응형

질문


내 플러터 페이지 중 하나에서, 화면을 가로 모드로 설정하고 세로 모드로 회전하지 않도록 잠금을 걸어야합니다. 그러나 한 페이지에서만 이 기능을 활성화하는 방법이 필요합니다. 이를 동적으로 활성화할 수 있는 방법이 있을까요?

세로 모드로는 회전하지 않고, 가로 왼쪽 모드 또는 가로 오른쪽 모드로 회전하도록하고 싶습니다.

On one of my flutter pages, I need the screen to set to landscape mode and lock it so it can't rotate into portrait mode, but only on the one page. So need a way to enable this function on-the-fly. Anyone know how to do this?

I would like it to rotate landscape-left or landscape-right, just not into portrait mode.


답변


먼저 services 패키지를 가져오세요:

import 'package:flutter/services.dart';

이렇게 하면 "운영 체제의 그래픽 인터페이스와 응용 프로그램이 상호 작용하는 방식과 관련된 특정 측면을 제어합니다."라는 SystemChrome 클래스에 액세스할 수 있습니다.

위젯을 로드할 때 다음과 같이 작업하세요:

@override
void initState(){
  super.initState();
  SystemChrome.setPreferredOrientations([
      DeviceOrientation.landscapeRight,
      DeviceOrientation.landscapeLeft,
  ]);
}

그런 다음 페이지를 떠날 때 다음과 같이 다시 정상으로 되돌려 놓으세요:

@override
dispose(){
  SystemChrome.setPreferredOrientations([
    DeviceOrientation.landscapeRight,
    DeviceOrientation.landscapeLeft,
    DeviceOrientation.portraitUp,
    DeviceOrientation.portraitDown,
  ]);
  super.dispose();
}
반응형

댓글