<

Flutter 1.7.8 リリースノート

1.7.8 リリースは、5 月の 1.5.4 安定版リリースの後継です。 1,289 件の統合 PR を提供し、184 件の問題を解決しました。 このリリースの主なテーマは次のとおりです。

  • Android での 32 ビットおよび 64 ビットのバンドルのサポート
  • 多数の iOS 機能と修正、 改善されたテキスト編集とローカリゼーションを含む
  • AndroidXのサポート新しいプロジェクトの場合は、「flutter create」の –androidx フラグを使用します。
  • 新しいウィジェット:レンジスライダー

詳細については、ロードマップ、 Flutter エンジンの継続的な作業も継続しています Web ターゲットとデスクトップ ターゲットの有効化をサポートするフレームワーク。 ただし、これはまだ一般的に使用する準備ができていません。

32 ビットおよび 64 ビット Android バンドルのサポート

2019 年 8 月 1 日以降、ネイティブ コードを使用し、Android 9 Pie をターゲットとする Android アプリは、64 ビット バージョンを提供する必要があるGoogle Play ストアに公開する場合は 32 ビット バージョンに加えて。すべての Flutter アプリにはネイティブ コードが含まれているため、この要件は、ストアに送信される新しい Flutter アプリや、既存の Flutter アプリの更新に影響します。これは、ストアに公開されている既存のアプリのバージョンには影響しません。

このリリースには、32 ビットと 64 ビットの両方のバイナリをサポートするアプリ バンドルと APK の構築のサポートが含まれており、これで作業が完了しました。https://github.com/flutter/flutter/issues/31922。 Android アプリケーションを構築するときにこのリリースを使用すると、App Bundle または APK はデフォルトで 32 ビットと 64 ビットの両方の CPU アーキテクチャをサポートするようになりました。

重大な変更

以下は、このリリースの重大な変更のリストと、各変更の説明および Flutter コードでの処理方法です。

  • #29188修正 25807: スライバー マルチボックス ウィジェットでの移動を実装する
  • #29683 デバイスの種類に基づいてツールバーとハンドルを表示/非表示にする
  • #30040デスクトップ プラットフォーム、靴べら版にフォーカス トラバーサルを実装します。
  • #30579 PointerDownEvent および PointerMoveEvent ボタンのデフォルトのボタンは 1
  • #30874やり直し「一部のポインターイベントから圧力のカスタマイズを削除」
  • #31227 CupertinoTabController の追加
  • #31574RadioListTile コールバック動作の一貫性の向上
  • #32059問題 14014 読み取り専用テキストフィールドを修正
  • #32842プッシュ遷移でヒーロー アニメーションを「元の」ヒーロー状態で存続できるようにする
  • #33148ExpandIcon カスタムカラー
  • #33164 使用およびテストがないため、Layer.replaceWith を削除します
  • #33370 新しい画像 API を使用するように FadeInImage を更新します
  • #34051 テキスト インライン ウィジェット、TextSpan のリワーク (#30069)」で下位互換性が向上
  • #34095 クパチーノのテキストを OLTIP に編集し、再加工しました
  • #34501[マテリアル] RangeSliderThumbShapeとRangeSliderValueIndicatorShapeのTextDirectionと選択されたサムを修正
  • #33946Reland「テキストインラインウィジェット、TextSpan のリワーク」

重大なクラッシュの変更

このリリースでは、いくつかのクラッシュの問題も修正しました。

  • #31228ExpansionPanelList の重複グローバル キー例外を修正
  • #31581ネストされた TabBarView の破棄に関する例外を修正
  • #34460Gradle のローカル エンジンをオーバーライドする機能を再度追加

iOS

このリリースでは強化されたテキスト編集やローカリゼーションなど、Flutter での iOS サポートに引き続き重点を置いています。

  • #29809障害物の下に表示されるテキスト選択ツールバーを修正
  • #29824クパチーノのローカリゼーション ステップ 8: gen_cupertino_localizations を作成し、クパチーノの英語とフランス語用に生成します
  • #29954クパチーノのローカリゼーション ステップ 9: テストの追加
  • #30129ギャラリーデモの更新コントロールを修正し、コメントを更新
  • #30224クパチーノのローカリゼーション ステップ 10: flutter_localizations README を更新する
  • #31039Flutter Runを使用したiOS起動時のバンドルIDを修正
  • #31308CupertinoDialogAction で isDefaultAction が true の場合に太字フォントを追加しました
  • #31326シャッフルクパチーノアイコンをさらに追加
  • #31332iOS の選択ハンドルが非表示になる
  • #31464CupertinoPicker の忠実度のリビジョン
  • #31623エッジのスワイプと開始点でのドロップバックを修正
  • #31644クパチーノ ローカリゼーション ステップ 12: サポートされているすべての言語のプッシュ翻訳
  • #31687iOS キャレットを中央に配置し、スケールしない定数オフセットを削除します
  • #31763ScrollbarPainterのthumbExtent計算を修正し、パディングを追加
  • #31852テキスト選択ハンドルがインタラクティブではない場合がある
  • #32013クパチーノ トルコ語翻訳
  • #32086CupertinoSliverRefreshControl onRefresh コールバックを修正
  • #32469CupertinoNavigationBarBackButton にカスタムの onPress を適用させます
  • #32513クパチーノ ローカリゼーション ステップ 12 試行 2: サポートされているすべての言語のプッシュ翻訳
  • #32620TextFieldにScrollControllerを追加しました
  • #32823enableInteractiveSelection を CupertinoTextField に追加
  • #32974無効になっているCupertinoTextFieldスタイルを修正
  • #33450IosProject.isSwift から null を返さない
  • #33624CupertinoTabScaffold のクラッシュ修正
  • #33634スクロールバーを設置しましょう
  • #33653TextEditingController API での破棄に関するアドバイスを含める
  • #33684Xcode ビルドフェーズで CocoaPods の入出力パスを無効にし、新しい Xcode ビルドシステムを採用します
  • #33739固定 cupertinoTextField プレースホルダー textAlign
  • #33852Xcode ビルドフェーズで CocoaPods の入出力パスを無効にし、新しい Xcode ビルドシステムを採用します
  • #34293XcodedevelopmentRegionを「en」に変更し、CFBundleDevelopmentRegionをDEVELOPMENT_LANGUAGEに変更します。
  • #34964CupertinoTextField.onTap

アンドロイド

このリリースでは、外部貢献者による AndroidX の新しいサポートにより、Android のサポートが改善されました (ありがとう、ジョシュ!) に準拠し、64 ビットおよび 32 ビットの APK バンドルをサポートしています。Google Play ストアの更新されたポリシー。

  • #31028AndroidX サポート ライブラリを使用するプロジェクトの生成のサポートを追加
  • #31359Android での動的パッチのビルドのサポートを削除
  • #31491adb stdout に失敗せずにポート番号を含めることを許可する
  • #31835ADB CrOS 修正を厳選してベータ版に修正
  • #3278732 ビットと 64 ビットをサポート
  • #33191Gradle タスク名からコロンは非推奨であるため削除します
  • #33611Dart の新しいダイレクト ELF ジェネレーターを使用して、AOT BLOB を Android APK の共有ライブラリとしてパッケージ化する
  • #33696ELF 共有ライブラリを生成し、APK およびアプリ バンドルでマルチ abi ライブラリを許可します
  • #33901AndroidView フォーカス イベントに応答します。
  • #33923[flutter_tool] APK sha の計算時間を追跡する
  • #33951adb.exe ヒープ破損終了コードをホワイトリストに登録します。
  • #34066androidX フラグをモジュールの pubspec.yaml テンプレートに追加して、…
  • #34123ELF 共有ライブラリを生成し、APK およびアプリ バンドルでマルチ abi ライブラリを許可します

材料

このリリースには、DatePicker、SnackBar、TimePicker などの既存のマテリアル コンポーネントに対する多くの改善と、新しいコンポーネントが含まれています。レンジスライダー。

  • #30572[マテリアル] Adaptive Slider コンストラクター
  • #30884[マテリアル] 動的タブをサポートするために TabController を更新します
  • #31018[マテリアル] 選択/未選択のラベル スタイル + BottomNavigationBar のアイコン テーマ
  • #31025Scaffold ウィジェットに scrimColor プロパティを追加しました
  • #31275SnackBar を更新して、マテリアル仕様の新しいスタイルをサポートできるようにします。
  • #31295ThemeData.accentColor の二次色への接続を改善
  • #31318BottomSheetTheme を追加して、BottomSheet のテーマの色、高さ、形状を有効にします
  • #31438マテリアル ボタンのフォーカス処理とホバーを実装します。
  • #31514日付ピッカーのレイアウトの例外
  • #31566TimePicker は時間を選択した後に分モードに移行します
  • #31662SliverAppBar にシェイププロパティを追加しました
  • #31681[マテリアル] テーマに対応したレンジ スライダーを作成します (連続および離散)
  • #31693Radio または RadioListTile の onChange にメモを追加します
  • #31902colorScheme プロパティを参照するために、primaryColor ドキュメントを更新しました。
  • #31938scrimDrawerColor を適切な const 形式で更新します
  • #32053TimePicker のタッチ ターゲットを増やす
  • #32070前景と背景の名前を明と暗に変更します#32527PopupMenuButton に「enabled」プロパティを追加しました
  • #32726マテリアルは ScrollNotifications の上向きのバブルを妨げてはなりません
  • #32904Tooltip と InkWell で reverseDuration を使用する
  • #32911素材 長押し テキストハンドル フラッシュ
  • #33073SliverAppBar 形状プロパティ
  • #34869[マテリアル] Range SliderでonChangeStartとonChangeEndを正しく呼び出す
  • #32950マテリアルが折りたたまれていない場合は「すべて選択」が可能

ウェブ

Web 機能に関する作業は、flutter_web リポジトリのコードをメインの Flutter リポジトリにマージすることで継続され、このプレリリース テクノロジに対してよりシンプルな開発者エクスペリエンスを提供します。私たちはすでに既存の Flutter サンプルの多くを Web 用にコンパイルしました。楽しみ!

  • #32360Flutter Web を Flutter でコンパイルできるようにする
  • #33197Web のホット リスタートと増分リビルドを接続する
  • #33406Platform.isPlatform ゲッターに Web セーフ間接参照を追加
  • #33525 flutter テスト機能を追加 –platform=chrome
  • #33533Reland - Web のホット リスタートと増分リビルドを接続する
  • #33629Webkit 検査プロトコルを使用して Web 用に Real-er 再起動を追加する
  • #33859Reland は、プラットフォーム Chrome での flutter テストをサポートしています
  • #33892Web サイズを追跡するベンチマークを追加する
  • #33956Flutter Web アプリケーションのエントリポイントである Codegen
  • #34018Web 用の Flutter Create を追加する
  • #34084ウェブ上でのランニングを不気味にする
  • #34112ネットワークイメージの個別のWeb実装とIO実装
  • #34159Flutter Web 用の製品定義を使用し、余分なアセット サーバーを削除する
  • #34589Web の構築、クリーンアップ ルールのターゲット ロジックの大部分を削除します。
  • #34856デバイス名をChromeに設定します
  • #34885リランド: Web デバイスの名前を変更します

デスクトップ

Flutter でのデスクトップの実験的なサポートも引き続き行われ、ホバー、フォーカス トラバーサル、ショートカット、アクション、さらにはゲーム コントローラーなど、デスクトップに必要な基本機能が数多く改善されています。また、開発者エクスペリエンスの簡素化も継続して行っています。詳細については、こちらをご覧ください。ここ。これは非常に早い段階ですが、Flutter でデスクトップのサポートを試している場合は、ログの問題見つけたら!

  • #30076FocusTraversalPolicy および DefaultFocusTraversal 機能を実装します。
  • #30339ジェスチャーにボタンを追加する
  • #31329macOS ターゲット用の Xcode ビルド スクリプトを追加
  • #31515macOS のローカル エンジンとアセットの同期をサポート
  • #31567Linux デスクトップでのビルド/名前付けスクリプトの必要性を排除
  • #31631Linux にローカル エンジンを使用するよう教える
  • #31699再着陸: ツールチップ ホバーのサポートを追加
  • #31802リランド「不透明度の下のテキスト フィールド選択ツールバーを修正 (#31097)」
  • #31819やり直し: ジェスチャにボタンを追加する
  • #31873基本的なデスクトップ Linux チェックを追加する
  • #31935やり直し#2: ジェスチャにボタンを追加する
  • #32025Hover Listener が変換を考慮するようにする
  • #32142コールバックが間違ったタイミングで呼び出されないように RenderPointerListener を修正します。
  • #32335Windows 用の Flutter msbuild を教える
  • #32776テキストフィールドのフォーカスとホバーのサポート。
  • #32838ハンドルがキーボードに隠れている
  • #32914ボタンとフィールドが無効になっている場合、ホバーとフォーカスが反応しないようにします。
  • #33090[マテリアル] ボタンにホバー、押下、およびフォーカスされたテキストの色のサポートを追加します。
  • #33277Flutter Doctor で macOS サポートを実装する
  • #33279最初のフォーカス判定における不具合を修正。
  • #33298アクションとキーボード ショートカット マップのサポートを追加
  • #33443Windows ビルド呼び出しをバッチ スクリプトでラップする
  • #33454unpack で必要なアーティファクトが宣言されていることを確認する
  • #33477マウスが取り外されたときの onExit 呼び出しを修正しました。
  • #33540ローカル エンジン変数を Windows ビルドに渡す
  • #33608macOS プロジェクト ファイルを再構築する
  • #33632ソースからキーコードを更新する
  • #33636macOS 用のプラグイン ツールのサポートを実装する
  • #33695Shift、meta、alt、control などのキーの擬似キーの同義語を追加します。
  • #33868ゲームコントローラーボタンのサポート
  • #33872Windows に「ドクター」サポートを追加
  • #33874Windows Web Doctor が Chrome を起動できないようにする
  • #34050アセットをコピーするときに macOS で開くファイルを制限する
  • #34376macOS での「ドライバー」サポートに不足している部分を追加
  • #34755Linux Doctor実装を追加

アニメーション、スクロール、画像

このリリースでは、アニメーション、スクロール、画像サポートの改良を続けています。

  • #21896一番下のシートのスクロール
  • #28834スライバーのアニメーションリスト#29677ナビゲーターがフルスクリーンではない場合のヒーローrectTweenの計算を修正
  • #32730AnimationControllerにreverseDurationを追加
  • #32843ティッカーをリークしていたAnimationControllerの欠落した破棄を追加しました。
  • #31832DSS の子が範囲を満たしていない場合に DSS をドラッグできるようにする
  • #33627さまざまな使用例の SliverFillRemaining フラグ
  • #32853consolidateHttpClientResponseBytes() に onBytesReceived コールバックを追加
  • #32857debugNetworkImageHttpClientProviderを追加
  • #32936ImageStream リスナー API に健全性を追加する
  • #33729consolidateHttpClientResponseBytes() を更新して、compressionState を使用するようにします。
  • #33369画像への読み込みサポートを追加

タイポグラフィーとアクセシビリティ

また、以下に示すように、OpenType フォント固有の機能へのアクセスのサポートなど、優れたタイポグラフィーとアクセシビリティを目指して継続的に推進しています。このサンプル。

  • #31987テキストの折り返し幅
  • #33230テキストスタイルのフォント機能のフレームワークサポート
  • #33808ExpansionPanelList を修正し、必要のないヘッダー セマンティクスをマージします。
  • #34368semantics_tester を修正
  • #34434セマンティクスの修正

基本

いつものように、私たちは基礎を磨き続けます。

  • #30388SearchDelegateにhintStyleを追加
  • #30406binaryMessenger コンストラクター引数をプラットフォーム チャネルに追加します
  • #30612必須パラメータを FlexibleSpaceBarSettings に追加しました
  • #30796無制限の TextField 幅エラー
  • #30942ectMoreOrLess に等しい、64 ビットの四角形の準備
  • #31282動的モードのアーティファクトのプリキャッシュを停止します。
  • #31485hasScrolledBody で例外がスローされるのを防ぐ
  • #31520空の OpacityLayer をエンジンに追加しないでください
  • #31526noop ログリーダーを実際の実装に置き換える
  • #31757FlutterProject ファクトリを同期化する
  • #31807AssetBundle をオーバーライドするクラスで const を使用できるようにする
  • #31825関数リテラルの欠落している return ステートメントを修正
  • #31861制約付きチップラベル計算に水平パディングを追加
  • #31868通知エラーの処理
  • #31889共有インターフェイスの背後にあるプラットフォーム ロジック ビルドの抽象化を開始する
  • #32126multicast_dns バージョンをバンプする
  • #32192PointerEvents をイベント レシーバーのローカル座標系に変換します
  • #32328TextOverflow にパンくずリストを追加する
  • #32434古い TabController を廃棄した後の TabController の置き換えのサポート
  • #32528デフォルトでは、モーダルボトムシートをタップしても閉じられません。
  • #33152ModalRoute は、didPopNext に対する以前の焦点を再開します。
  • #33297アプリフローへのインストゥルメントの追加
  • #33458アプリの測定に追加
  • #33462ストラットスタイルのテキストスケーリングを修正
  • #3347323723 丸め誤差を修正
  • #33474fontSize を含まないスタイルが使用されたときに DropdownButton がクラッシュする問題を修正しました
  • #33475セマンティック ハンドラーの宣言を検出器から認識器に移動する
  • #33488DiagnosticsProperties で toFixedAsString と DoubleProperty を使用する
  • #33802エラーの代わりにダブルダブルタップで切り替えます
  • #33876リランド「テキスト スタイルのフォント機能のフレームワーク サポート」
  • #33886currentSystemFrameTimeStamp を SchedulerBinding に追加する
  • #33955localFocalPoint を ScaleDetector に追加
  • #33999viewPadding を使用した MediaQuery の更新
  • #34055ツールバー例外の修正を切り替えます
  • #34057endIndent プロパティを Divider とverticalDivider に追加
  • #34068空の読み取り専用テキストをダブルクリックしたときの空の選択矢印を修正…
  • #34081現在報告されていない非同期コールバック エラーを報告します。
  • #34175十分なコンテンツがない場合はスクロールバーを表示しない
  • #34243新しいエンジン API を使用するように Flutter.Frame イベントを更新します
  • #34295Uint8List SDK の重大な変更を準備する
  • #34298セーフエリアの維持 : パート 2
  • #34355テキストフィールドの垂直方向の配置
  • #34365Flutter.Frame イベントに新しいエンジン API を使用するための変更の redux
  • #34508Flutter.Navigation イベントにルート情報を追加します
  • #34512ファブセマンティクスが最終的に最上位になるようにする
  • #34515OutlineInputBorder は大きすぎる borderRadius を調整します
  • #34519ページスクロール位置の丸めエラーを修正
  • #34526キャッシュのダウンロード中に HttpException が発生した場合に再試行します
  • #34529コンパイル トレースと動的サポート コードを削除します。
  • #34573Flutter jar がプラグイン プロジェクトのすべてのビルド タイプに追加されるようにします。
  • #34587レイヤーオフセットがゼロの場合は、パス、四角形、および四角形をコピーしないでください
  • #34932onChanged プロパティを TextFormField に追加しました
  • #35092FlutterProjectFactory を追加して、内部でオーバーライドできるようにします。
  • #33272タスクの順序を強制するために、mergeAssets タスクにMustRunAfterを追加します。
  • #33535DataTable ヘッダーとデータ行のカスタム高さパラメーター
  • #33628DataTable のカスタム水平パディング

ツーリング

最後に重要なことですが、Flutter ツールが読み取り専用ディレクトリにある場合に、より明確なエラー メッセージを提供するなど、ツールの改良と簡素化も続けています (Flutter 開発者にとってよくある問題であり、これが解決に役立つことを期待しています) )。

  • #31342プラットフォーム固有のツールを再生成する前にプロジェクトが存在するかどうかを確認してください
  • #31399AOT をビルドするために無視可能なトラックウィジェット作成フラグを追加します
  • #31406.ios または ios サブプロジェクトがない場合は、iOS 用のビルドを試行しないでください。
  • #31446現在のプロジェクトでサポートされているデバイスのみにデバイスのフィルタリングを許可する
  • #31591Runner.xcodeproj ファイルがない場合は必ず早期に終了するようにしてください。
  • #31804pubspec で宣言されたアセットがある場合にのみアセットをビルドします
  • #31812修正 #31764: フォント pubspec.yaml が反復可能でない場合に適切なエラー メッセージを表示する
  • #32072空の pubspec で NPE しないでください
  • #33041flutter パッケージの名前を flutter pub に変更します
  • #33448vswhere を使用して Visual Studio を検索する
  • #33472サポートされているプラ​​ットフォームを列挙するための add daemon コマンド
  • #33924 flutter実行に –dart-flags オプションを追加しました
  • #33980getSupportedPlatforms のデーモン プロトコルのバージョンを増やす
  • #33990デーモンのデバイス カテゴリを追加
  • #34181Reland 「 flutter実行に –dart-flags オプションを追加しました (#33924)」
  • #34291FLUTTER_ROOT および FLUTTER_ROOT/bin が書き込み可能かどうかを確認します。
  • #34353Gradle プラグインのリファクタリング
  • #34517.packages パスをスナップショット呼び出しに渡します
  • #34527無効な .packages ファイルでクラッシュしない
  • #34606動的パッチ適用に関連する Gradle スクリプトの部分を削除します。
  • #34616テストが正常に終了しない場合はコンパイラ プロセスを強制終了します
  • #34624Flutter Doctor の検証と結果を分析する
  • #34683読み取り専用セマンティクスフラグを追加
  • #34684エラーにさらに構造を追加します。
  • #34685テストが完了したらプラットフォームを閉じます (コンパイラーを破棄し、フォント ファイルを削除します)。
  • #34725 flutter ツールの NPE を修正
  • #34736動的パッチ適用に関連するフラグを削除します。
  • #34785エミュレータの表示名を調整する
  • #34794デーモンのデバイスにエミュレータIDフィールドを追加
  • #34802コマンドライン実行から一時的なデバイスを優先する
  • #34859垂直方向の配置の回帰を修正
  • #35074ツールカバレッジリダックスを有効にしてみます
  • #35084findTargetDevices を DeviceManager に移動する
  • #33284テストターゲットも必ず構築してください
  • #33867コマンドラインデスクトップとWebの環境変数ガードを削除する
  • #33283ツールの相対パスとスナップショット ロジックを修正

全問題リスト

このリリースで対処された問題の完全なリストを確認できます。ここ