mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
This PR is to make `BottomAppBarTheme` conform to Flutter Material's conventions for component themes: - Added a `BottomAppBarThemeData` class which defines overrides for the defaults for `BottomAppBar` properties. - Added `BottomAppBarTheme` constructor parameters: `BottomAppBarThemeData? data` and `Widget? child`. This is now the preferred way to configure a `BottomAppBarTheme`: ```dart BottomAppBarTheme( data: BottomAppBarThemeData( color: xxx, height: xxx, elevation: xxx, shape: xxx, ... ), child: const BottomAppBar() ) ``` These two properties are made nullable to not break existing apps which has customized `ThemeData.bottomAppBarTheme`. - Update `BottomAppBarTheme` to be an `InheritedWidget` subclass. - Changed the type of component theme defaults from `BottomAppBarTheme` to `BottomAppBarThemeData`. - Changed the `BottomAppBarTheme bottomAppBarTheme` property to `BottomAppBarThemeData bottomAppBarTheme` in `ThemeData` and `ThemeData.copyWith()`. This may cause breaking changes, a migration guide will be created on website repo. - Add new tests for `BottomAppBarThemeData` and update the existing `BottomAppBarTheme` tests. And also turn to `true` for `useMaterial3` (along with usages accordingly) at the common method `_withTheme()` since `useMaterial3` is true by default. - Addresses the "theme normalization" sub-project within #91772. ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview [Tree Hygiene]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md [test-exempt]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests [Flutter Style Guide]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md [Features we expect every widget to implement]: https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md [Data Driven Fixes]: https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md --------- Signed-off-by: huycozy <huy@nevercode.io>
This directory contains tools and resources that the Flutter team uses during the development of the framework. The tools in this directory should not be necessary for developing Flutter applications, though of course, they may be interesting if you are curious.
The tests in this directory are run in the framework_tests_misc-*
shards.