1. ホーム
  2. flutter

[解決済み] Flutter。画面の向きをオンデマンドで設定・ロックする方法

2022-07-05 05:40:56

質問

flutterのページの1つで、画面をランドスケープモードに設定し、ポートレートモードに回転できないようにロックする必要がありますが、1ページのみです。そのため、この機能をオンザフライで有効にする方法が必要です。誰かこれを行う方法を知っていますか?

私は、縦向きモードにならないだけで、横向き左または横向き右に回転することを望みます。

どのように解決するのですか?

まず、サービスパッケージをインポートします。

import 'package:flutter/services.dart';

これによって SystemChrome クラスで、その "Controls specific aspects of the operating system's graphical interface and how it interacts with the application."

Widgetを読み込んだら、以下のようにします。

@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();
}