🤸‍♂️

flutter で画面の向きを変える方法、向きを変えたように見せる方法

2020/11/11に公開

TL;DR

画面の向きを設定する

import 'package:flutter/services.dart';  // 必要

// なんかこんな感じ。`_landscape` の変更は各々やりたいところで変更してもらえれば。
// 三項演算子 だとサンプルとして読みにくいかなと思って例は switch にしたけど読みやすいかは微妙ですね……
void changeLandscape() {
  switch (_landscape) {
    case false:
      SystemChrome.setPreferredOrientations(
          [DeviceOrientation.portraitDown, DeviceOrientation.portraitUp]);
      break;
    case true:
      // 右辺を上にしたいときはこう。
      // 左辺を上にしたいときは DeviceOrientation.landscapeLeft を指定してやる
      SystemChrome.setPreferredOrientations(
          [DeviceOrientation.landscapeRight]);
      break;
  }
}

画面の向きを固定する

RotatedBox で回転させる

import 'package:flutter/material.dart';

...// なんかこんな感じ。そのままですね……
// YourWidget は自分の必要な Widget を入れてやる
// `_landscape` の変更は各々やりたいところで変更してもらえれば。

Widget build(BuildContext context) {
  return RotatedBox(
            child: YourWidget(
              ),
            quarterTurns: _landscape ? 1 : 0);
...

Discussion