# Flutter 1.7.8 發行說明

> Flutter 1.7.8 的發行說明。



1.7.8 版本是 5 月份 1.5.4 穩定版（stable）的後續發行，
包含 1289 個已合併 PR 並關閉 184 個問題。
此版本的主要主題為：

*   Support for 32-bit and 64-bit bundles on Android
*   Large number of iOS features and fixes,
    including improved text editing and localization
*   [AndroidX support](https://github.com/flutter/flutter/pull/31028)
    for new projects via the --androidx flag of 'flutter create'
*   A new widget: the
    [RangeSlider](https://api.flutter.dev/flutter/material/RangeSlider-class.html)

如我們的[開發藍圖](https://github.com/flutter/flutter/blob/master/docs/roadmap/Roadmap.md)所述，
我們也持續在 Flutter 引擎與框架中推進支援啟用 Web 與桌面目標的工作；
但這尚未準備好供一般用途使用。


## 支援 32 位元與 64 位元 Android Bundle

自 2019 年 8 月 1 日起，使用原生程式碼並以 Android 9 Pie 為目標的 Android 應用程式，在發佈至 Google Play 商店時，將[需要提供 64 位元版本](https://android-developers.googleblog.com/2019/01/get-your-apps-ready-for-64-bit.html)，以及 32 位元版本。由於所有 Flutter 應用程式都包含原生程式碼，此要求將影響提交至商店的新 Flutter 應用程式，以及現有 Flutter 應用程式的更新。這不影響已發佈至商店的現有應用程式版本。

此版本包含建置同時支援 32 位元與 64 位元二進位檔的 app bundle 與 APK 的支援，完成了我們在 [https://github.com/flutter/flutter/issues/31922](https://github.com/flutter/flutter/issues/31922) 上的工作。使用此版本建置 Android 應用程式時，您的 App Bundle 或 APK 現在預設支援 32 位元與 64 位元 CPU 架構。


## 破壞性變更

以下是此版本中的破壞性變更清單，包含每項變更的說明以及如何在您的 Flutter 程式碼中處理的方式。

*   [#29188](https://github.com/flutter/flutter/pull/29188) Fix 25807: implement move in sliver multibox widget
*   [#29683](https://github.com/flutter/flutter/pull/29683) [Show/hide toolbar and handles based on device kind](https://groups.google.com/d/msgid/flutter-announce/CAAzQ467mb_7ZC4-djDeWLiYEmAH815-R5eums2cWmo2ND%3Dz%3DOw%40mail.gmail.com.)
*   [#30040](https://github.com/flutter/flutter/pull/30040) Implement focus traversal for desktop platforms, shoehorn edition.
*   [#30579](https://github.com/flutter/flutter/pull/30579) [PointerDownEvent and PointerMoveEvent default buttons to 1](https://groups.google.com/d/msgid/flutter-announce/9ed026a5-f6e3-438d-b4fd-303ae444323d%40googlegroups.com.)
*   [#30874](https://github.com/flutter/flutter/pull/30874) Redo "Remove pressure customization from some pointer events"
*   [#31227](https://github.com/flutter/flutter/pull/31227) [Adding CupertinoTabController](https://groups.google.com/d/msgid/flutter-announce/a1e7e4df-0310-4083-93b6-12ffd150dad0%40googlegroups.com.)
*   [#31574](https://github.com/flutter/flutter/pull/31574) Improve RadioListTile Callback Behavior Consistency
*   [#32059](https://github.com/flutter/flutter/pull/32059) fix issue 14014 read only text field
*   [#32842](https://github.com/flutter/flutter/pull/32842) Allow "from" hero state to survive hero animation in a push transition
*   [#33148](https://github.com/flutter/flutter/pull/33148) ExpandIcon Custom Colors
*   [#33164](https://github.com/flutter/flutter/pull/33164) [remove Layer.replaceWith due to no usage and no tests](https://groups.google.com/d/msgid/flutter-announce/f9823aec-676a-41e9-a9ff-b6598c63b7fe%40googlegroups.com)
*   [#33370](https://github.com/flutter/flutter/pull/33370) [Update FadeInImage to use new Image APIs]( https://groups.google.com/d/msgid/flutter-announce/CAA8mi4cGh6BVXS5u0g_7Kep6LOL6gO5htViMTgS%2BkMJ08oAjAQ%40mail.gmail.com.)
*   [#34051](https://github.com/flutter/flutter/pull/34051) [Text inline widgets, TextSpan rework (#30069)" with improved backwards compatibility](https://groups.google.com/d/msgid/flutter-announce/CAN87bmyu29-ikjeSouVFNcpR7OEL95NPLnb7DN-F8bVLsnzkzQ%40mail.gmail.com.)
*   [#34095](https://github.com/flutter/flutter/pull/34095) [Cupertino text edit to oltip, reworked](https://groups.google.com/d/msgid/flutter-announce/f7cc747a-c812-4bab-a97c-4adb4ce04084%40googlegroups.com.)
*   [#34501](https://github.com/flutter/flutter/pull/34501) [Material] Fix TextDirection and selected thumb for RangeSliderThumbShape and RangeSliderValueIndicatorShape
*   [#33946](https://github.com/flutter/flutter/pull/33946) Reland "Text inline widgets, TextSpan rework"


## 嚴重當機問題修復

我們在此版本中也修復了數個當機問題。

*   [#31228](https://github.com/flutter/flutter/pull/31228) Fix ExpansionPanelList Duplicate Global Keys Exception
*   [#31581](https://github.com/flutter/flutter/pull/31581) Fix Exception on Nested TabBarView disposal
*   [#34460](https://github.com/flutter/flutter/pull/34460) Add back ability to override the local engine in Gradle


## iOS

我們持續大力專注於 Flutter 的 iOS 支援，本版本包含強化的文字編輯與本地化功能。

*   [#29809](https://github.com/flutter/flutter/pull/29809) Fix text selection toolbar appearing under obstructions
*   [#29824](https://github.com/flutter/flutter/pull/29824) Cupertino localization step 8: create a gen_cupertino_localizations and generate one for cupertino english and french
*   [#29954](https://github.com/flutter/flutter/pull/29954) Cupertino localization step 9: add tests
*   [#30129](https://github.com/flutter/flutter/pull/30129) Fix refresh control in the gallery demo, update comments
*   [#30224](https://github.com/flutter/flutter/pull/30224) Cupertino localization step 10: update the flutter_localizations README
*   [#31039](https://github.com/flutter/flutter/pull/31039) Fix bundle id on iOS launch using flutter run
*   [#31308](https://github.com/flutter/flutter/pull/31308) Added font bold when isDefaultAction is true in CupertinoDialogAction
*   [#31326](https://github.com/flutter/flutter/pull/31326) Add more shuffle cupertino icons
*   [#31332](https://github.com/flutter/flutter/pull/31332) iOS selection handles are invisible
*   [#31464](https://github.com/flutter/flutter/pull/31464) CupertinoPicker fidelity revision
*   [#31623](https://github.com/flutter/flutter/pull/31623) fix edge swiping and dropping back at starting point
*   [#31644](https://github.com/flutter/flutter/pull/31644) Cupertino localization step 12: push translation for all supported languages
*   [#31687](https://github.com/flutter/flutter/pull/31687) Center iOS caret, remove constant offsets that do not scale
*   [#31763](https://github.com/flutter/flutter/pull/31763) Fix ScrollbarPainter thumbExtent calculation and add padding
*   [#31852](https://github.com/flutter/flutter/pull/31852) Text selection handles are sometimes not interactive
*   [#32013](https://github.com/flutter/flutter/pull/32013) Cupertino Turkish Translation
*   [#32086](https://github.com/flutter/flutter/pull/32086) Fix CupertinoSliverRefreshControl onRefresh callback
*   [#32469](https://github.com/flutter/flutter/pull/32469) Let CupertinoNavigationBarBackButton take a custom onPressed
*   [#32513](https://github.com/flutter/flutter/pull/32513) Cupertino localization step 12 try 2: push translation for all supported languages
*   [#32620](https://github.com/flutter/flutter/pull/32620) Added ScrollController to TextField
*   [#32823](https://github.com/flutter/flutter/pull/32823) Add enableInteractiveSelection to CupertinoTextField
*   [#32974](https://github.com/flutter/flutter/pull/32974) Fix disabled CupertinoTextField style
*   [#33450](https://github.com/flutter/flutter/pull/33450) Do not return null from IosProject.isSwift
*   [#33624](https://github.com/flutter/flutter/pull/33624) CupertinoTabScaffold crash fix
*   [#33634](https://github.com/flutter/flutter/pull/33634) Let there be scroll bars
*   [#33653](https://github.com/flutter/flutter/pull/33653) Include advice about dispose in TextEditingController api
*   [#33684](https://github.com/flutter/flutter/pull/33684) Disable CocoaPods input and output paths in Xcode build phase and adopt new Xcode build system
*   [#33739](https://github.com/flutter/flutter/pull/33739) fixed cupertinoTextField placeholder textAlign
*   [#33852](https://github.com/flutter/flutter/pull/33852) Disable CocoaPods input and output paths in Xcode build phase and adopt new Xcode build system
*   [#34293](https://github.com/flutter/flutter/pull/34293) Change Xcode developmentRegion to 'en' and CFBundleDevelopmentRegion to DEVELOPMENT_LANGUAGE
*   [#34964](https://github.com/flutter/flutter/pull/34964) CupertinoTextField.onTap


## Android

在此版本中，我們改善了對 Android 的支援，加入了來自外部貢獻者的 AndroidX 支援（感謝 [Josh](https://github.com/athornz)！），並依照 [Google Play 商店更新政策](https://developer.android.com/distribute/best-practices/develop/64-bit) 支援 64 位元與 32 位元 APK bundle。



*   [#31028](https://github.com/flutter/flutter/pull/31028) Adds support for generating projects that use AndroidX support libraries
*   [#31359](https://github.com/flutter/flutter/pull/31359) Remove support for building dynamic patches on Android
*   [#31491](https://github.com/flutter/flutter/pull/31491) Allow adb stdout to contain the port number without failing
*   [#31835](https://github.com/flutter/flutter/pull/31835) Cherry-pick ADB CrOS fix to beta
*   [#32787](https://github.com/flutter/flutter/pull/32787) Support 32 and 64 bit
*   [#33191](https://github.com/flutter/flutter/pull/33191) Remove colon from Gradle task name since it's deprecated
*   [#33611](https://github.com/flutter/flutter/pull/33611) Use Dart's new direct ELF generator to package AOT blobs as shared libraries in Android APKs
*   [#33696](https://github.com/flutter/flutter/pull/33696) Generate ELF shared libraries and allow multi-abi libs in APKs and App bundles
*   [#33901](https://github.com/flutter/flutter/pull/33901) Respond to AndroidView focus events.
*   [#33923](https://github.com/flutter/flutter/pull/33923) [flutter_tool] Track APK sha calculation time
*   [#33951](https://github.com/flutter/flutter/pull/33951) Whitelist adb.exe heap corruption exit code.
*   [#34066](https://github.com/flutter/flutter/pull/34066) Adds the androidX flag to a modules pubspec.yaml template so it is se…
*   [#34123](https://github.com/flutter/flutter/pull/34123) Generate ELF shared libraries and allow multi-abi libs in APKs and App bundles


## Material

此版本包含對現有 Material 元件的多項改進，包括 DatePicker、SnackBar 與 TimePicker，以及一個新元件：[RangeSlider](https://api.flutter.dev/flutter/material/RangeSlider-class.html)。



*   [#30572](https://github.com/flutter/flutter/pull/30572) [Material] Adaptive Slider constructor
*   [#30884](https://github.com/flutter/flutter/pull/30884) [Material] Update TabController to support dynamic Tabs
*   [#31018](https://github.com/flutter/flutter/pull/31018) [Material] selected/unselected label styles + icon themes on BottomNavigationBar
*   [#31025](https://github.com/flutter/flutter/pull/31025) added scrimColor property in Scaffold widget
*   [#31275](https://github.com/flutter/flutter/pull/31275) Update SnackBar to allow for support of the new style from Material spec
*   [#31295](https://github.com/flutter/flutter/pull/31295) Improve ThemeData.accentColor connection to secondary color
*   [#31318](https://github.com/flutter/flutter/pull/31318) Add BottomSheetTheme to enable theming color, elevation, shape of BottomSheet
*   [#31438](https://github.com/flutter/flutter/pull/31438) Implements focus handling and hover for Material buttons.
*   [#31514](https://github.com/flutter/flutter/pull/31514) Date picker layout exceptions
*   [#31566](https://github.com/flutter/flutter/pull/31566) TimePicker moves to minute mode after hour selection
*   [#31662](https://github.com/flutter/flutter/pull/31662) added shape property to SliverAppBar
*   [#31681](https://github.com/flutter/flutter/pull/31681) [Material] Create a themable Range Slider (continuous and discrete)
*   [#31693](https://github.com/flutter/flutter/pull/31693) Adds a note to Radio's/RadioListTile's onChange
*   [#31902](https://github.com/flutter/flutter/pull/31902) Updated primaryColor docs to refer to colorScheme properties
*   [#31938](https://github.com/flutter/flutter/pull/31938) Update scrimDrawerColor with proper const format
*   [#32053](https://github.com/flutter/flutter/pull/32053) Increase TimePicker touch targets
*   [#32070](https://github.com/flutter/flutter/pull/32070) rename foreground and background to light and dark [#32527](https://github.com/flutter/flutter/pull/32527) Added 'enabled' property to the PopupMenuButton
*   [#32726](https://github.com/flutter/flutter/pull/32726) Material should not prevent ScrollNotifications from bubbling upwards
*   [#32904](https://github.com/flutter/flutter/pull/32904) Use reverseDuration on Tooltip and InkWell
*   [#32911](https://github.com/flutter/flutter/pull/32911) Material Long Press Text Handle Flash
*   [#33073](https://github.com/flutter/flutter/pull/33073) SliverAppBar shape property
*   [#34869](https://github.com/flutter/flutter/pull/34869) [Material] Properly call onChangeStart and onChangeEnd in Range Slider
*   [#32950](https://github.com/flutter/flutter/pull/32950) Material allows "select all" when not collapsed


## Web

Web 功能的工作持續推進，flutter_web 儲存庫的程式碼已合併進主要 flutter 儲存庫，為這項預覽技術提供更簡單的開發體驗。我們已
[將許多現有的 Flutter 範例編譯為 Web 版本]({{site.github}}/flutter/samples/)。
歡迎體驗！



*   [#32360](https://github.com/flutter/flutter/pull/32360) Allow flutter web to be compiled with flutter
*   [#33197](https://github.com/flutter/flutter/pull/33197) Wire up hot restart and incremental rebuilds for web
*   [#33406](https://github.com/flutter/flutter/pull/33406) Add web safe indirection to Platform.isPlatform getters
*   [#33525](https://github.com/flutter/flutter/pull/33525) Add capability to flutter test –platform=chrome
*   [#33533](https://github.com/flutter/flutter/pull/33533) Reland - Wire up hot restart and incremental rebuilds for web
*   [#33629](https://github.com/flutter/flutter/pull/33629) Add real-er restart for web using webkit inspection protocol
*   [#33859](https://github.com/flutter/flutter/pull/33859) Reland support flutter test on platform chrome
*   [#33892](https://github.com/flutter/flutter/pull/33892) add benchmarks to track web size
*   [#33956](https://github.com/flutter/flutter/pull/33956) Codegen an entrypoint for flutter web applications
*   [#34018](https://github.com/flutter/flutter/pull/34018) Add flutter create for the web
*   [#34084](https://github.com/flutter/flutter/pull/34084) make running on web spooky
*   [#34112](https://github.com/flutter/flutter/pull/34112) Separate web and io implementations of network image
*   [#34159](https://github.com/flutter/flutter/pull/34159) Use product define for flutter web and remove extra asset server
*   [#34589](https://github.com/flutter/flutter/pull/34589) Remove most of the target logic for build web, cleanup rules
*   [#34856](https://github.com/flutter/flutter/pull/34856) set device name to Chrome
*   [#34885](https://github.com/flutter/flutter/pull/34885) Reland: rename web device


## Desktop

Flutter 對桌面的實驗性支援也持續進行，對桌面所需的基礎功能進行了許多改進，例如懸停、焦點遍歷、快捷鍵、動作甚至遊戲控制器！我們也持續簡化開發體驗，詳情請參閱[此處](http://github.com/google/flutter-desktop-embedding)。目前仍處於非常早期的階段，但如果您正在嘗試 Flutter 的桌面支援，請在發現問題時[回報問題](https://github.com/google/flutter-desktop-embedding/issues)！



*   [#30076](https://github.com/flutter/flutter/pull/30076) Implements FocusTraversalPolicy and DefaultFocusTraversal features.
*   [#30339](https://github.com/flutter/flutter/pull/30339) Add buttons to gestures
*   [#31329](https://github.com/flutter/flutter/pull/31329) Add Xcode build script for macOS target
*   [#31515](https://github.com/flutter/flutter/pull/31515) Support local engine and asset sync for macOS
*   [#31567](https://github.com/flutter/flutter/pull/31567) Remove need for build/name scripts on Linux desktop
*   [#31631](https://github.com/flutter/flutter/pull/31631) Teach Linux to use local engine
*   [#31699](https://github.com/flutter/flutter/pull/31699) Re-land: Add support for Tooltip hover
*   [#31802](https://github.com/flutter/flutter/pull/31802) Reland "Fix text field selection toolbar under Opacity (#31097)"
*   [#31819](https://github.com/flutter/flutter/pull/31819) Redo: Add buttons to gestures
*   [#31873](https://github.com/flutter/flutter/pull/31873) Add basic desktop linux checks
*   [#31935](https://github.com/flutter/flutter/pull/31935) Redo#2: Add buttons to gestures
*   [#32025](https://github.com/flutter/flutter/pull/32025) Make Hover Listener respect transforms
*   [#32142](https://github.com/flutter/flutter/pull/32142) Fix RenderPointerListener so that callbacks aren't called at the wrong time.
*   [#32335](https://github.com/flutter/flutter/pull/32335) Teach flutter msbuild for Windows
*   [#32776](https://github.com/flutter/flutter/pull/32776) Text field focus and hover support.
*   [#32838](https://github.com/flutter/flutter/pull/32838) Handles hidden by keyboard
*   [#32914](https://github.com/flutter/flutter/pull/32914) Make hover and focus not respond when buttons and fields are disabled.
*   [#33090](https://github.com/flutter/flutter/pull/33090) [Material] Add support for hovered, pressed, and focused text color on Buttons.
*   [#33277](https://github.com/flutter/flutter/pull/33277) Implement macOS support in flutter doctor
*   [#33279](https://github.com/flutter/flutter/pull/33279) Fix a problem in first focus determination.
*   [#33298](https://github.com/flutter/flutter/pull/33298) Add actions and keyboard shortcut map support
*   [#33443](https://github.com/flutter/flutter/pull/33443) Wrap Windows build invocation in a batch script
*   [#33454](https://github.com/flutter/flutter/pull/33454) ensure unpack declares required artifacts
*   [#33477](https://github.com/flutter/flutter/pull/33477) Fix onExit calling when the mouse is removed.
*   [#33540](https://github.com/flutter/flutter/pull/33540) Pass local engine variables to Windows build
*   [#33608](https://github.com/flutter/flutter/pull/33608) Restructure macOS project files
*   [#33632](https://github.com/flutter/flutter/pull/33632) Update the keycodes from source
*   [#33636](https://github.com/flutter/flutter/pull/33636) Implement plugin tooling support for macOS
*   [#33695](https://github.com/flutter/flutter/pull/33695) Add pseudo-key synonyms for keys like shift, meta, alt, and control.
*   [#33868](https://github.com/flutter/flutter/pull/33868) Game controller button support
*   [#33872](https://github.com/flutter/flutter/pull/33872) Add 'doctor' support for Windows
*   [#33874](https://github.com/flutter/flutter/pull/33874) Prevent windows web doctor from launching chrome
*   [#34050](https://github.com/flutter/flutter/pull/34050) limit open files on macOS when copying assets
*   [#34376](https://github.com/flutter/flutter/pull/34376) Add missing pieces for 'driver' support on macOS
*   [#34755](https://github.com/flutter/flutter/pull/34755) Add linux doctor implementation


## 動畫、捲動與圖片

在此版本中，我們持續打磨動畫、捲動與圖片支援。



*   [#21896](https://github.com/flutter/flutter/pull/21896) Bottom sheet scrolling
*   [#28834](https://github.com/flutter/flutter/pull/28834) Sliver animated list [#29677](https://github.com/flutter/flutter/pull/29677) Fix calculation of hero rectTween when Navigator isn't fullscreen
*   [#32730](https://github.com/flutter/flutter/pull/32730) Add reverseDuration to AnimationController
*   [#32843](https://github.com/flutter/flutter/pull/32843) Added a missing dispose of an AnimationController that was leaking a ticker.
*   [#31832](https://github.com/flutter/flutter/pull/31832) Allow DSS to be dragged when its children do not fill extent
*   [#33627](https://github.com/flutter/flutter/pull/33627) SliverFillRemaining flag for different use cases
*   [#32853](https://github.com/flutter/flutter/pull/32853) Add onBytesReceived callback to consolidateHttpClientResponseBytes()
*   [#32857](https://github.com/flutter/flutter/pull/32857) Add debugNetworkImageHttpClientProvider
*   [#32936](https://github.com/flutter/flutter/pull/32936) Add clarity to the ImageStream listener API
*   [#33729](https://github.com/flutter/flutter/pull/33729) Update consolidateHttpClientResponseBytes() to use compressionState
*   [#33369](https://github.com/flutter/flutter/pull/33369) Add loading support to Image


## 字體排印與無障礙功能

我們也持續推進卓越的字體排印與無障礙功能，包括支援存取 OpenType 字型特定功能，如[此範例](https://github.com/timsneath/typography)所示。



*   [#31987](https://github.com/flutter/flutter/pull/31987) Text wrap width
*   [#33230](https://github.com/flutter/flutter/pull/33230) Framework support for font features in text styles
*   [#33808](https://github.com/flutter/flutter/pull/33808) fix ExpansionPanelList merge the header semantics when it is not necessary
*   [#34368](https://github.com/flutter/flutter/pull/34368) Fix semantics_tester
*   [#34434](https://github.com/flutter/flutter/pull/34434) Semantics fixes


## 基礎功能

一如既往，我們持續打磨基礎功能。



*   [#30388](https://github.com/flutter/flutter/pull/30388) Add hintStyle in SearchDelegate
*   [#30406](https://github.com/flutter/flutter/pull/30406) Add binaryMessenger constructor argument to platform channels
*   [#30612](https://github.com/flutter/flutter/pull/30612) Added required parameters to FlexibleSpaceBarSettings
*   [#30796](https://github.com/flutter/flutter/pull/30796) Unbounded TextField width error
*   [#30942](https://github.com/flutter/flutter/pull/30942) rectMoreOrLess equals, prep for 64bit rects
*   [#31282](https://github.com/flutter/flutter/pull/31282) Stop precaching the artifacts for dynamic mode.
*   [#31485](https://github.com/flutter/flutter/pull/31485) Prevent exception being thrown on hasScrolledBody
*   [#31520](https://github.com/flutter/flutter/pull/31520) Don't add empty OpacityLayer to the engine
*   [#31526](https://github.com/flutter/flutter/pull/31526) replace no-op log reader with real implementation
*   [#31757](https://github.com/flutter/flutter/pull/31757) Make FlutterProject factories synchronous
*   [#31807](https://github.com/flutter/flutter/pull/31807) Make const available for classes that override AssetBundle
*   [#31825](https://github.com/flutter/flutter/pull/31825) Fix missing return statements on function literals
*   [#31861](https://github.com/flutter/flutter/pull/31861) Add Horizontal Padding to Constrained Chip Label Calculations
*   [#31868](https://github.com/flutter/flutter/pull/31868) Handle notification errors
*   [#31889](https://github.com/flutter/flutter/pull/31889) Start abstracting platform logic builds behind a shared interface
*   [#32126](https://github.com/flutter/flutter/pull/32126) Bump multicast_dns version
*   [#32192](https://github.com/flutter/flutter/pull/32192) Transform PointerEvents to the local coordinate system of the event receiver
*   [#32328](https://github.com/flutter/flutter/pull/32328) Add breadcrumbs to TextOverflow
*   [#32434](https://github.com/flutter/flutter/pull/32434) Support for replacing the TabController, after disposing the old one
*   [#32528](https://github.com/flutter/flutter/pull/32528) Tapping a modal bottom sheet should not dismiss it by default
*   [#33152](https://github.com/flutter/flutter/pull/33152) ModalRoute resumes previous focus on didPopNext
*   [#33297](https://github.com/flutter/flutter/pull/33297) Instrument add to app flows
*   [#33458](https://github.com/flutter/flutter/pull/33458) Add to app measurement
*   [#33462](https://github.com/flutter/flutter/pull/33462) Fix text scaling of strut style
*   [#33473](https://github.com/flutter/flutter/pull/33473) fix 23723 rounding error
*   [#33474](https://github.com/flutter/flutter/pull/33474) Fixed for DropdownButton crashing when a style was used that didn't include a fontSize
*   [#33475](https://github.com/flutter/flutter/pull/33475) Move declaration of semantic handlers from detectors to recognizers
*   [#33488](https://github.com/flutter/flutter/pull/33488) use toFixedAsString and DoubleProperty in diagnosticProperties
*   [#33802](https://github.com/flutter/flutter/pull/33802) Double double tap toggles instead of error
*   [#33876](https://github.com/flutter/flutter/pull/33876) Reland "Framework support for font features in text styles"
*   [#33886](https://github.com/flutter/flutter/pull/33886) Add currentSystemFrameTimeStamp to SchedulerBinding
*   [#33955](https://github.com/flutter/flutter/pull/33955) Add localFocalPoint to ScaleDetector
*   [#33999](https://github.com/flutter/flutter/pull/33999) Updating MediaQuery with viewPadding
*   [#34055](https://github.com/flutter/flutter/pull/34055) Toggle toolbar exception fix
*   [#34057](https://github.com/flutter/flutter/pull/34057) Add endIndent property to Divider and VerticalDivider
*   [#34068](https://github.com/flutter/flutter/pull/34068) fix empty selection arrow when double clicked on empty read only text…
*   [#34081](https://github.com/flutter/flutter/pull/34081) Report async callback errors that currently go unreported.
*   [#34175](https://github.com/flutter/flutter/pull/34175) Don't show scrollbar if there isn't enough content
*   [#34243](https://github.com/flutter/flutter/pull/34243) update the Flutter.Frame event to use new engine APIs
*   [#34295](https://github.com/flutter/flutter/pull/34295) Prepare for Uint8List SDK breaking changes
*   [#34298](https://github.com/flutter/flutter/pull/34298) Preserving SafeArea : Part 2
*   [#34355](https://github.com/flutter/flutter/pull/34355) Text field vertical align
*   [#34365](https://github.com/flutter/flutter/pull/34365) redux of a change to use new engine APIs for Flutter.Frame events
*   [#34508](https://github.com/flutter/flutter/pull/34508) add route information to Flutter.Navigation events
*   [#34512](https://github.com/flutter/flutter/pull/34512) Make sure fab semantics end up on top
*   [#34515](https://github.com/flutter/flutter/pull/34515) OutlineInputBorder adjusts for borderRadius that is too large
*   [#34519](https://github.com/flutter/flutter/pull/34519) fix page scroll position rounding error
*   [#34526](https://github.com/flutter/flutter/pull/34526) retry on HttpException during cache download
*   [#34529](https://github.com/flutter/flutter/pull/34529) Remove compilation trace and dynamic support code
*   [#34573](https://github.com/flutter/flutter/pull/34573) Ensures flutter jar is added to all build types on plugin projects
*   [#34587](https://github.com/flutter/flutter/pull/34587) Do not copy paths, rects, and rrects when layer offset is zero
*   [#34932](https://github.com/flutter/flutter/pull/34932) Added onChanged property to TextFormField
*   [#35092](https://github.com/flutter/flutter/pull/35092) Add FlutterProjectFactory so that it can be overridden internally.
*   [#33272](https://github.com/flutter/flutter/pull/33272) Add mustRunAfter on mergeAssets task to force task ordering
*   [#33535](https://github.com/flutter/flutter/pull/33535) Custom height parameters for DataTable header and data rows
*   [#33628](https://github.com/flutter/flutter/pull/33628) DataTable Custom Horizontal Padding


## 工具鏈

最後同樣重要的是，我們也持續打磨並簡化工具鏈，包括當 flutter 工具發現自己處於唯讀目錄時提供更清晰的錯誤訊息（這是 Flutter 開發者常見的問題，我們希望此改進有所幫助）。



*   [#31342](https://github.com/flutter/flutter/pull/31342) check if project exists before regenerating platform specific tooling
*   [#31399](https://github.com/flutter/flutter/pull/31399) add ignorable track-widget-creation flag to build aot
*   [#31406](https://github.com/flutter/flutter/pull/31406) if there is no .ios or ios sub-project, don't attempt building for iOS
*   [#31446](https://github.com/flutter/flutter/pull/31446) Allow filtering devices to only those supported by current project
*   [#31591](https://github.com/flutter/flutter/pull/31591) make sure we exit early if the Runner.xcodeproj file is missing
*   [#31804](https://github.com/flutter/flutter/pull/31804) only build asset when there is asset declared in pubspec
*   [#31812](https://github.com/flutter/flutter/pull/31812) Fix #31764: Show appropriate error message when fonts pubspec.yaml isn't iterable
*   [#32072](https://github.com/flutter/flutter/pull/32072) don't NPE with empty pubspec
*   [#33041](https://github.com/flutter/flutter/pull/33041) Rename flutter packages to flutter pub
*   [#33448](https://github.com/flutter/flutter/pull/33448) Use vswhere to find Visual Studio
*   [#33472](https://github.com/flutter/flutter/pull/33472) add daemon command to enumerate supported platforms
*   [#33924](https://github.com/flutter/flutter/pull/33924) Added –dart-flags option to flutter run
*   [#33980](https://github.com/flutter/flutter/pull/33980) Increase daemon protocol version for getSupportedPlatforms
*   [#33990](https://github.com/flutter/flutter/pull/33990) Add device category for daemon
*   [#34181](https://github.com/flutter/flutter/pull/34181) Reland "Added –dart-flags option to flutter run (#33924)"
*   [#34291](https://github.com/flutter/flutter/pull/34291) Check whether FLUTTER_ROOT and FLUTTER_ROOT/bin are writable.
*   [#34353](https://github.com/flutter/flutter/pull/34353) Refactor Gradle plugin
*   [#34517](https://github.com/flutter/flutter/pull/34517) pass .packages path to snapshot invocation
*   [#34527](https://github.com/flutter/flutter/pull/34527) Don't crash on invalid .packages file
*   [#34606](https://github.com/flutter/flutter/pull/34606) Remove portions of the Gradle script related to dynamic patching
*   [#34616](https://github.com/flutter/flutter/pull/34616) Kill compiler process when test does not exit cleanly
*   [#34624](https://github.com/flutter/flutter/pull/34624) Break down flutter doctor validations and results
*   [#34683](https://github.com/flutter/flutter/pull/34683) add read only semantics flag
*   [#34684](https://github.com/flutter/flutter/pull/34684) Add more structure to errors.
*   [#34685](https://github.com/flutter/flutter/pull/34685) Close platform when tests are complete (dispose compiler and delete font files)
*   [#34725](https://github.com/flutter/flutter/pull/34725) Fix NPE in flutter tools
*   [#34736](https://github.com/flutter/flutter/pull/34736) Remove flags related to dynamic patching
*   [#34785](https://github.com/flutter/flutter/pull/34785) Tweak the display name of emulators
*   [#34794](https://github.com/flutter/flutter/pull/34794) Add emulatorID field to devices in daemon
*   [#34802](https://github.com/flutter/flutter/pull/34802) Prefer ephemeral devices from command line run
*   [#34859](https://github.com/flutter/flutter/pull/34859) Fix Vertical Alignment Regression
*   [#35074](https://github.com/flutter/flutter/pull/35074) Attempt to enable tool coverage redux
*   [#35084](https://github.com/flutter/flutter/pull/35084) Move findTargetDevices to DeviceManager
*   [#33284](https://github.com/flutter/flutter/pull/33284) make sure we build test targets too
*   [#33867](https://github.com/flutter/flutter/pull/33867) Remove environment variable guards for command line desktop and web
*   [#33283](https://github.com/flutter/flutter/pull/33283) Fix relative paths and snapshot logic in tool


## 完整問題清單

您可以在[此處](/release/release-notes/changelogs/changelog-1.7.8)查看此版本中已處理的完整問題清單。

