<

非推奨の API は v1.22 以降削除されました

まとめ

Flutter に準拠して、非推奨ポリシー、 以降にサポートが終了した非推奨の API 1.22 安定版リリースは削除されました。 API が非推奨になったのはこれが初めてです Flutter から削除されました。 これらの非推奨の一部は、 移行ガイド ポリシー。

影響を受けるすべての API はこれにコンパイルされています 移行を支援する主要な情報源。あクイックリファレンスシートも利用可能です。

設計書と記事ご利用いただけます Flutter の非推奨ポリシーの詳細については、「Flutter の非推奨ポリシー」を参照してください。

変更点

このセクションでは、影響を受けるクラスごとに非推奨をリストします。

CupertinoDialog

修正ツールによるサポート: IDE 修正のみ。

CupertinoDialogv0.2.3 で非推奨になりました。 使用CupertinoAlertDialogまたCupertinoPopupSurfaceその代わり。

移行ガイド

クパチーノアラートダイアログ

移行前のコード:

CupertinoDialog(child: myWidget);

移行後のコード:

CupertinoAlertDialog(content: myWidget);

クパチーノポップアップ表面

移行前のコード:

CupertinoDialog(child: myWidget);

移行後のコード:

CupertinoPopupSurface(child: myWidget);

参考文献

API ドキュメント:

  • CupertinoAlertDialog
  • CupertinoPopupSurface

関連する問題:

  • CupertinoDialog クラスを廃止する

関連する PR:

  • で廃止されました#20649
  • に削除されました#73604

クパチーノのナビゲーション バーactionsForegroundColor

修正ツールによるサポート: いいえ

CupertinoNavigationBar.actionsForegroundColorCupertinoSliverNavigationBar.actionsForegroundColorv1.1.2 で非推奨になりました。 設定primaryColorあなたの中でCupertinoTheme代わりにこれを伝播します。 にアクセスするには、primaryColor、 電話CupertinoTheme.of(context).primaryColor

移行ガイド

移行前のコード:

ベッド7b482-d1e7-4167-837e-c0c99267c215

移行後のコード:

CupertinoTheme(
  data: CupertinoThemeData(
    primaryColor: CupertinoColors.systemBlue
  ),
  child: ...
);

// To access the color from the `CupertinoTheme`
CupertinoTheme.of(context).primaryColor;

参考文献

API ドキュメント:

  • CupertinoNavigationBar
  • CupertinoSliverNavigationBar
  • CupertinoTheme
  • CupertinoThemeData

関連する問題:

  • CupertinoApp と CupertinoTheme を作成する

関連する PR:

  • で廃止されました#23759
  • に削除されました#73745

b2cbb​​747-3e04-476d-b004-84bea87c078a

修正ツールによるサポート: はい

CupertinoTextThemeData.brightnessv1.10.14 で非推奨になりました。 このフィールド メンバーは、非推奨になった時点で無効になりました。 これに代わるものはありません パラメータの参照は削除する必要があります。

移行ガイド

移行前のコード:

const CupertinoTextThemeData themeData = CupertinoTextThemeData(brightness: Brightness.dark);
themeData.copyWith(brightness: Brightness.light);

移行後のコード:

const CupertinoTextThemeData themeData = CupertinoTextThemeData();
themeData.copyWith();

参考文献

API ドキュメント:

  • CupertinoTextThemeData

関連する問題:

  • CupertinoColors と CupertinoTheme を改訂して動的な色を実現

関連する PR:

  • で廃止されました#41859
  • に削除されました#72017

構築されたポインタ イベントfromHoverEvent

修正ツールによるサポート: はい

fromHoverEventのコンストラクタPointerEnterEventPointerExitEventv1.4.3 で非推奨になりました。 のfromMouseEvent代わりにコンストラクターを使用する必要があります。

移行ガイド

移行前のコード:

final PointerEnterEvent enterEvent = PointerEnterEvent.fromHoverEvent(PointerHoverEvent());
final PointerExitEvent exitEvent = PointerExitEvent.fromHoverEvent(PointerHoverEvent());

移行後のコード:

final PointerEnterEvent enterEvent = PointerEnterEvent.fromMouseEvent(PointerHoverEvent());
final PointerExitEvent exitEvent = PointerExitEvent.fromMouseEvent(PointerHoverEvent());

参考文献

API ドキュメント:

  • PointerEnterEvent
  • PointerExitEvent

関連する問題:

  • PointerEnterEvent と PointerExitEvent は、 ホバーイベントから作成される

関連する PR:

  • で廃止されました#28602
  • に削除されました#72395

showDialog用途builder

修正ツールによるサポート: はい

childのパラメータshowDialogv0.2.3 で非推奨になりました。 のbuilder代わりにパラメータを使用する必要があります。

移行ガイド

移行前のコード:

showDialog(child: myWidget);

移行後のコード:

showDialog(builder: (context) => myWidget);

参考文献

API ドキュメント:

  • showDialog

関連する問題:

  • showDialog は子ではなくビルダーを取得する必要があります

関連する PR:

  • で廃止されました#15303
  • に削除されました#72532

Scaffold.resizeToAvoidBottomPadding

修正ツールによるサポート: はい

resizeToAvoidBottomPaddingのパラメータScaffoldv1.1.9 で非推奨になりました。 のresizeToAvoidBottomInset代わりにパラメータを使用する必要があります。

移行ガイド

移行前のコード:

Scaffold(resizeToAvoidBottomPadding: true);

移行後のコード:

Scaffold(resizeToAvoidBottomInset: true);

参考文献

API ドキュメント:

  • Scaffold

関連する問題:

  • 足場をネストするときに警告を表示する
  • キーボード付きのセーフエリア
  • 二重に積み重ねられた材料足場は、二重にsizeToAvoidBottomPaddingを変更しないでください
  • Window と MediaQueryData の viewInsets とパディングは、それらがどのように相互作用するかを定義する必要があります
  • tabbarview内でテキストフィールドを使用する場合の下部のオーバーフローの問題

関連する PR:

  • で廃止されました#26259
  • に削除されました#72890

ButtonTheme.bar

修正ツールによるサポート: いいえ

barのコンストラクタButtonThemev1.9.1 で非推奨になりました。ButtonBarTheme代わりに使用できますButtonBarさん、 または別のコンストラクターを使用しますButtonTheme用途が特定のものでない場合ButtonBar

ボタン固有のテーマは、TextButtonThemeElevatedButtonTheme、 とOutlinedButtonThemeクラス、 それぞれが適切なボタン クラスに対応しており、TextButtonElevatedButtonOutlinedButton

移行ガイド

移行前のコード:

ButtonTheme.bar(
  minWidth: 10.0,
  alignedDropdown: true,
  height: 40.0,
);

移行後のコード、使用ButtonTheme:

ButtonTheme(
  minWidth: 10.0,
  alignedDropdown: true,
  height: 40.0,
);

移行後のコード、使用ButtonBarTheme:

ButtonBarTheme(
  data: ButtonBarThemeData(
    buttonMinWidth: 10.0,
    buttonAlignedDropdown: true,
    buttonHeight: 40.0,
  )
);

参考文献

API ドキュメント:

  • ButtonTheme
  • ButtonBarTheme
  • ButtonBar
  • TextButtonTheme
  • TextButton
  • ElevatedButtonTheme
  • ElevatedButton
  • OutlinedButtonTheme
  • OutlinedButton

関連する問題:

  • ButtonTheme.bar は原色を使用する必要がある場合にアクセントカラーを使用します
  • ThemeData.accentColor のテキストのコントラストが不十分です
  • AlertDialog/ButtonBar の高さに影響するマテリアルTapTargetSize の変更の結果として高さが増加しました

関連する PR:

  • で廃止されました#37544
  • に削除されました#73746

InlineSpanTextSpanPlaceholderSpan

修正ツールによるサポート: いいえ

次のメソッドは、InlineSpanTextSpanPlaceholderSpan順番に 画像などの段落へのウィジェットのインライン埋め込みを有効にします。

移行ガイド

移行前のコード 移行後のコード
InlineSpan.text TextSpan.text
InlineSpan.children 87f982e7-9659-4470-9740-faecdc4b796
InlineSpan.visitTextSpan InlineSpan.visitChildren
InlineSpan.recognizer TextSpan.recognizer
InlineSpan.describeSemantics InlineSpan.computeSemanticsInformation
PlaceholderSpan.visitTextSpan PlaceHolderSpan.visitChildren
TextSpan.visitTextSpan TextSpan.visitChildren

参考文献

API ドキュメント:

  • InlineSpan
  • TextSpan
  • PlaceholderSpan
  • WidgetSpan

関連する問題:

  • テキスト: インライン画像をサポート

関連する PR:

  • 開発経緯:
    • #30069
    • #33946
    • #33794
  • で廃止されました#34051
  • に削除されました#73747

RenderView.scheduleInitialFrame

修正ツールによるサポート: いいえ

RenderView.scheduleInitialFrameメソッドは非推奨となり、 で削除されました スプラッシュスクリーンが早期に取り外されるのを防ぐため、 黒い画面が表示されます。 これが起こるのは次の場合ですWidgetsFlutterBinding.ensureInitializedと呼ばれていました。 代わりに、このメソッドの呼び出しを次のように置き換えます。RenderView.prepareInitialFrame、 に続くRenderView.owner.requestVisualUpdate

移行ガイド

移行前のコード:

scheduleInitialFrame();

移行後のコード:

prepareInitialFrame();
owner.requestVisualUpdate();

参考文献

API ドキュメント:

  • RenderView
  • WidgetsFlutterBinding

関連する問題:

  • WidgetsFlutterBinding.ensureInitialized() によるスプラッシュ画面のダウンが早すぎます

関連する PR:

  • で廃止されました#39535
  • に削除されました#73748

Layer.findAll

修正ツールによるサポート: いいえ

Layer.findAllメソッドは廃止されました の導入Layer.findAnnotations統一するために の実装findfindAll。 影響を受けるコードを移行するには、次のように呼び出します。findAllAnnotationsその代わり。 このメソッドは、AnnotationResult、前者を含む の戻り値findAllAnnotationResult.annotations

移行ガイド

移行前のコード:

findAll(offset);

移行後のコード:

findAllAnnotations(offset).annotations;

参考文献

API ドキュメント:

  • Layer
  • MouseRegion
  • RenderMouseRegion
  • AnnotatedRegionLayer
  • AnnotationResult

関連する問題:

  • 最新の提案: MouseRegion のデフォルトは不透明です。 findAnnotations を実装するにはレイヤーが必要です

関連する PR:

  • 最初に変更されたのは#37896
  • で廃止されました#42953
  • に削除されました#73749

BinaryMessages

修正ツールによるサポート: いいえ

BinaryMessagesクラス、それに関連付けられた静的メソッド、およびdefaultBinaryMessengerゲッター は非推奨となり削除されました。のdefaultBinaryMessengerインスタンスはに移動されましたServicesBinding。 これにより、別のデフォルトを登録できるようになりましたBinaryMessengerテスト環境下では、 を作成することでServicesBindingテスト用のサブクラス。そうすることで、その数を追跡できるようになります。 同期を目的とした保留中のプラットフォーム メッセージ。

移行ガイド

移行前のコード: 移行後のコード:
defaultBinaryMessenger ServicesBinding.instance.defaultBinaryMessenger
BinaryMessages BinaryMessenger
BinaryMessages.handlePlatformMessage ServicesBinding.instance.defaultBinaryMessenger.handlePlatformMessage
BinaryMessages.send ServicesBinding.instance.defaultBinaryMessenger.send
BinaryMessages.setMessageHandler ServicesBinding.instance.defaultBinaryMessenger.setMessageHandler
BinaryMessages.setMockMessageHandler ServicesBinding.instance.defaultBinaryMessenger.setMockMessageHandler

参考文献

API ドキュメント:

  • ServicesBinding
  • BinaryMessenger

関連する問題:

  • Espresso/EarlGrey の Flutter 同期サポート

関連する PR:

  • 最初に変更されたのは#37489
  • で廃止されました#38464
  • に削除されました#73750

一般的なメソッドBuildContext

修正ツールによるサポート: はい

いくつかの方法BuildContext使っていたType先祖を探すために。 これらのメソッドのほとんどは、呼び出しサイトでのキャストを暗黙的に含んでいました。 戻り値の型は親型でした。 さらに、提供されたタイプは分析時にチェックされませんでした 型が実際に制約されている場合でも。 これらのメソッドをジェネリックにすると、型の安全性が向上し、必要なコードが減ります。

これらのメソッドの変更は次のような影響を及ぼします。 のBuildContextElement、 とStatefulElementクラス。 のTypeMatcherクラスも削除されました。

移行ガイド

移行前のコード:

ComplexLayoutState state = context.ancestorStateOfType(const TypeMatcher<ComplexLayoutState>()) as ComplexLayoutState;

移行後のコード:

ComplexLayoutState state = context.ancestorStateOfType<ComplexLayoutState>();

BuildContext

移行前のコード: 移行後のコード:
inheritFromElement dependOnInheritedElement
inheritFromWidgetOfExactType dependOnInheritedWidgetOfExactType
ancestorInheritedElementForWidgetOfExactType getElementForInheritedWidgetOfExactType
ancestorWidgetOfExactType findAncestorWidgetOfExactType
116910ac-0f55-484c-abd1-d8884d547追加 findAncestorStateOfType
rootAncestorStateOfType findRootAncestorStateOfType
ancestorRenderObjectOfType findAncestorRenderObjectOfType

d33ee81b-118d-448b-9ada-7ae530fc​​7d2d

移行前のコード: 移行後のコード:
inheritFromElement dependOnInheritedElement
inheritFromWidgetOfExactType dependOnInheritedWidgetOfExactType
ancestorInheritedElementForWidgetOfExactType getElementForInheritedWidgetOfExactType
ancestorWidgetOfExactType findAncestorWidgetOfExactType
ancestorStateOfType findAncestorStateOfType
rootAncestorStateOfType findRootAncestorStateOfType
ancestorRenderObjectOfType findAncestorRenderObjectOfType

StatefulElement

移行前のコード: 移行後のコード:
inheritFromElement dependOnInheritedElement

参考文献

API ドキュメント:

  • Type
  • BuildContext
  • Element
  • StatefulElement

関連する PR:

  • で廃止されました#44189
  • 削除された場所:
    • #69620
    • #72903
    • #72901
    • #73751

WidgetsBinding.deferFirstFrameReport&WidgetsBinding.allowFirstFrameReport

修正ツールによるサポート: はい

deferFirstFrameReportallowFirstFrameReportメソッド のWidgetsBinding次の目的で非推奨となり削除されました。 最初のフレームのレンダリングを遅らせるオプションを提供します。 これは、初期化を取得する必要があるウィジェットに役立ちます 情報を非同期で待機中に取得します。 その情報は時間がかかるため、フレームでレンダリングする必要はありません スプラッシュ画面を途中で終了させます。 のdeferFirstFrameallowFirstFrameメソッド 代わりにそれぞれを使用する必要があります。

移行ガイド

移行前のコード:

final WidgetsBinding binding = WidgetsBinding.instance;
binding.deferFirstFrameReport();
binding.allowFirstFrameReport();

移行後のコード:

final WidgetsBinding binding = WidgetsBinding.instance;
binding.deferFirstFrame();
binding.allowFirstFrame();

参考文献

API ドキュメント:

  • WidgetsBinding

関連する PR:

  • 最初に変更されたのは
    • #45135
    • #45588
  • で廃止されました#45941
  • に削除されました#72893

WaitUntilNoTransientCallbacksWaitUntilNoPendingFrame、&WaitUntilFirstFrameRasterized

修正ツールによるサポート: いいえ

WaitUntilNoTransientCallbacksWaitUntilNoPendingFrame、 とWaitUntilFirstFrameRasterizedからのメソッドflutter_driverパッケージは、より多くの機能を提供するために非推奨となり、削除されました。 構成可能なwaitForConditionクライアントが希望する条件を作成できるAPI を待つ。

移行ガイド

移行前のコード: 移行後のコード:
WaitUntilNoTransientCallbacks WaitForCondition(NoTransientCallbacks())
WaitUntilNoPendingFrame WaitForCondition(NoPendingFrame())
WaitUntilFirstFrameRasterized WaitForCondition(FirstFrameRasterized))

参考文献

API ドキュメント:

  • WaitForCondition

関連する問題:

  • Espresso/EarlGrey の Flutter 同期サポート

関連する PR:

  • 最初に変更されたのは#37736
  • で廃止されました#38836
  • に削除されました#73754

タイムライン

安定版リリース: 2.0.0