Taha Tesser
a732a74888
Introduce TabBar.tabAlignment ( #125036 )
...
fixes https://github.com/flutter/flutter/issues/124195
This introduces `TabBar.tabAlignment` while keeping the default alignment for both M2 and M3.
2023-05-01 16:59:55 +00:00
Viren Khatri
293715a6a4
add support to customize Slider interacivity ( #121483 )
...
design doc: https://docs.flutter.dev/go/permissible-slider-interaction
closes #113370
open questions:
- No, as `SliderInteraction.none` doesn't exist anymore.
- Yes (done)
- Yes.
- SliderInteraction
- SliderAction
- Slider.allowedInteraction
- Slider.permissibleInteraction
- Slider.interaction
- Slider.allowedAction
- Slider.permittedAction
2023-05-01 16:42:05 +00:00
Dan Field
e1e8ad8038
Fix crasher in DragableScrollableSheet when controller is animating and switching widgets ( #125721 )
...
We were failing to dispose of animation controllers created by `animateTo` when `didUpdateWidget` happens and we null out the `_attachedController`. This would cause the listener added here to fail on a null assertion:
fef41cfce0/packages/flutter/lib/src/widgets/draggable_scrollable_sheet.dart (L135)
Without the code change, the test ends up throwing exceptions related to that line. I don't have a great way to verify what this does visually though, hoping for help on that from internal customer.
b/279930163
See cl/527868355 as well.
Fixes https://github.com/flutter/flutter/issues/125709
2023-04-29 05:38:08 +00:00
Tae Hyung Kim
1a0b03cb25
Sliver Cross Axis Group ( #123862 )
...
This widget implements the ability to place slivers side by side in a single ScrollView so that they scroll together. The design document for `SliverCrossAxisGroup` can be found [here](https://docs.google.com/document/d/1e2bdLSYV_Dq2h8aHpF8mda67aOmZocPiMyjCcTTZhTg/edit?resourcekey=0-Xj2X2XA3CAFae22Sv3hAiA ).
Fixes #56756 .
2023-04-28 23:41:58 +00:00
Bruno Leroux
af050d95ae
Add a channel to query the engine keyboard state ( #122885 )
...
## Description
This PR adds a new channel to query the engine keyboard state.
See https://github.com/flutter/flutter/issues/87391#issuecomment-1228975571 for motivation.
## Related Issue
Framework side implementation for https://github.com/flutter/flutter/issues/87391 .
Once approved the framework will try to query the initial keyboard state from the engine. PRs will be needed on the engine side to answer the framework query.
## Tests
Adds 1 test.
2023-04-28 21:05:20 +00:00
Qun Cheng
a433f88d16
Checkbox.fillColor should be applied to checkbox's background color when it is unchecked. (#125643 )
2023-04-28 12:05:31 -07:00
Phlippie Bosman
69af934367
Nit: grammar in documentation ( #125462 )
...
Fixes a [grocer's apostrophe](https://www.grammar-monster.com/lessons/apostrophe_error_with_plurals.htm ).
Apostrophes are not used to indicate plurals, and this incorrect usage in the documentation tripped me up, so I figured I could submit a quick correction :)
2023-04-28 17:18:54 +00:00
fzyzcjy
00bbf5434c
Allow users to provide route settings to showMenu ( #124935 )
...
Background: I am adding logging to things like dialogs, bottom sheets and menus. Then I realized that, showMenu does not allow users to provide RouteSettings, while showDialog and showModalBottomSheet both allow. Therefore, IMHO a consistent API design may need to add this to showMenu.
I will add tests if this proposal looks OK :)
2023-04-28 15:21:54 +00:00
Viren Khatri
5a1ef73dd0
enhances OverlayEntry docs ( #124478 )
...
Fixes https://github.com/flutter/flutter/issues/123218
2023-04-28 14:37:55 +00:00
arvin
f87d208742
fix RangeSlider, with no overlayShape shifts to the left ( #125483 )
2023-04-28 09:24:49 -05:00
Taha Tesser
18e36dcb5d
Fix SnackBar material clip ( #125622 )
...
fixes https://github.com/flutter/flutter/issues/125619
### Before

### After

2023-04-27 16:48:27 +00:00
Pierre-Louis
1f602cb6ca
Provide default constraints for M3 bottom sheets ( #120065 )
...
This PR constrains M3 bottom sheets to 640dp max width by default.
`constraints` can be used to provide different `minWidth` and
`maxWidth`.
This is not a breaking change per the breaking change policy.
Part of https://github.com/flutter/flutter/issues/118619
Part of https://github.com/flutter/flutter/issues/111448
## 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] 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/wiki/Tree-hygiene#overview
[Tree Hygiene]: https://github.com/flutter/flutter/wiki/Tree-hygiene
[test-exempt]:
https://github.com/flutter/flutter/wiki/Tree-hygiene#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo#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/wiki/Tree-hygiene#handling-breaking-changes
[Discord]: https://github.com/flutter/flutter/wiki/Chat
2023-04-27 09:28:11 +02:00
chunhtai
ef82f97fc0
Adds selected semantics flag to radio button for Apple devices ( #125499 )
...
fixes https://github.com/flutter/flutter/issues/125495
The iOS will announce 'Selected, \<label\>, button' for selected radio button after this change
2023-04-25 21:11:15 +00:00
Justin McCandless
85ec874260
iOS TextField spell check style ( #125432 )
...
When using a Material TextField on iOS, the spell check selection style now defaults to the red iOS-style, not Android's blue.
2023-04-25 11:33:45 -07:00
Taha Tesser
6e1d4f9fc6
Fix SliverAppBar.medium & SliverAppBar.large text scale ( #125038 )
...
fixes https://github.com/flutter/flutter/issues/114340
<details>
<summary>code sample</summary>
```dart
import 'package:flutter/material.dart';
/// Flutter code sample for [SliverAppBar.medium].
void main() {
runApp(const AppBarMediumApp());
}
class AppBarMediumApp extends StatelessWidget {
const AppBarMediumApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
theme: ThemeData(
useMaterial3: true,
),
home: MediaQuery(
data: MediaQuery.of(context).copyWith(textScaleFactor: 3.0),
child: Material(
child: CustomScrollView(
slivers: <Widget>[
SliverAppBar.medium(
leading:
IconButton(icon: const Icon(Icons.menu), onPressed: () {}),
title: const Text('Medium App Bar'),
actions: <Widget>[
IconButton(icon: const Icon(Icons.more_vert), onPressed: () {}),
],
),
// SliverAppBar.large(
// leading:
// IconButton(icon: const Icon(Icons.menu), onPressed: () {}),
// title: const Text('Large App Bar'),
// actions: <Widget>[
// IconButton(
// icon: const Icon(Icons.more_vert), onPressed: () {}),
// ],
// ),
// Just some content big enough to have something to scroll.
SliverToBoxAdapter(
child: Card(
child: SizedBox(
height: 1200,
child: Padding(
padding: const EdgeInsets.fromLTRB(8, 100, 8, 100),
child: Text(
'Here be scrolling content...',
style: Theme.of(context).textTheme.headlineSmall,
),
),
),
),
),
],
),
),
),
);
}
}
```
</details>
### Before
| Medium App Bar - `textScaleFactor: 3.0` | Large App Bar - `textScaleFactor.30` |
| --------------- | --------------- |
| <img src="https://user-images.githubusercontent.com/48603081/232815191-ab42523b-d710-4c93-a889-e9c92ca472c8.png " height="450" /> | <img src="https://user-images.githubusercontent.com/48603081/232815232-104c208d-f1dd-404e-9218-5dfb61244d56.png " height="450" /> |
### After
| Medium App Bar - `textScaleFactor: 3.0` | Large App Bar - `textScaleFactor.30` |
| --------------- | --------------- |
| <img src="https://user-images.githubusercontent.com/48603081/232815733-8b8af94f-197f-427a-bbb9-bc6cd0173658.png " height="450" /> | <img src="https://user-images.githubusercontent.com/48603081/232815758-2c336d14-085b-4e91-8b93-748a40822ea6.png " height="450" /> |
2023-04-25 08:27:24 +00:00
Tirth
9525934ed3
[date_picker] [date_range_picker] add properties to change switch-to icons ( #124881 )
2023-04-24 16:20:21 -07:00
Tae Hyung Kim
482d1aaf13
Sliver Constrained Cross Axis ( #125239 )
...
Reimplements what we reverted here: #125233 .
2023-04-24 23:17:36 +00:00
Bernardo Ferrari
9e9ac77dea
Add borderRadius to LinearProgressIndicator ( #123517 )
...
Split from https://github.com/flutter/flutter/pull/122664 so it gets easier to review, as this is now unrelated to the `preferRound`. I'm one step from adding a width attribute, lol.
<img width="474" alt="image" src="https://user-images.githubusercontent.com/351125/226083798-71e529e9-4ae9-41de-a500-0412b989a273.png ">
cc @Piinks
2023-04-24 22:43:05 +00:00
Taha Tesser
38c7c2fe93
Fix OutlinedButton, TextButton, and IconButton throw exception when passing only one cursor to styleFrom ( #125204 )
...
fixes https://github.com/flutter/flutter/issues/118071
2023-04-24 21:41:06 +00:00
Renzo Olivares
1a51dc2131
Fix iOS touch drag behavior ( #125169 )
...
Before this change on a quick touch drag the cursor, where the touch is not on the previous collapsed selection, the cursor would move to the tapped position.
After this change on a quick touch drag the cursor does not move unless the touch is on the previously collapsed selection. This is inline with native behavior.
Before|After|Native
--|--|--
<video src="https://user-images.githubusercontent.com/948037/233224775-f33b42b5-5638-416c-9278-39ecd964e3bb.mov " />|<video src="https://user-images.githubusercontent.com/948037/233224760-2d1af657-8d99-45fc-8499-9567f17d533e.mov " />|<video src="https://user-images.githubusercontent.com/948037/233224790-f5997cfa-7370-4891-8952-11ef8057a729.mov " />
2023-04-24 19:25:21 +00:00
chunhtai
3b4ac4d5cc
Implement url support for RouteInformation and didPushRouteInformation ( #119968 )
...
Related https://github.com/flutter/flutter/issues/100624
The goal is to make sure the engine can send a location string in either the existing format or a complete uri string to the framework, and the framework will still work as usual.
2023-04-24 18:33:24 +00:00
fzyzcjy
c1e41b4304
Tiny fix doc pointing to incorrect widget confusing the readers ( #125394 )
...
Just a one-word super tiny change, which I encounter today when playing with RawGestureDetector :)
The original doc says:
> For common gestures, use a [GestureRecognizer](https://api.flutter.dev/flutter/gestures/GestureRecognizer-class.html ). [RawGestureDetector](https://api.flutter.dev/flutter/widgets/RawGestureDetector-class.html ) is useful primarily when developing your own gesture recognizers.
However, for "common gestures", IMHO the doc wants to say `GestureDetector` (because that one has easy-to-use onTap, onLongPress etc). On the other hand, GestureRecognizer should be used together with RawGestureDetector and is a quite low-level thing, and for common gestures people seldom use it. So I guess here it is a typo.
2023-04-24 18:33:18 +00:00
Justin McCandless
98aaf00a09
Fix the position of the Android-style spell check toolbar ( #124897 )
...
The spell check menu now appears directly below the misspelled word on Android.
2023-04-24 10:26:47 -07:00
Callum Moffat
e84daf3b70
Adjust selection rects inclusion criteria ( #125022 )
...
Include rects with any overlap instead of only when top-left or bottom-right included. The previous criteria didn't send any selection rects when text was taller than the text box and scroll offset was not zero.
Part of #30476
2023-04-22 01:40:20 +00:00
Luccas Clezar
f86b9220a3
Update Cupertino desktop text selection toolbar ( #121829 )
...
Visual fidelity of the right-click context menu on MacOS.
2023-04-21 16:03:34 -07:00
chunhtai
8a815c1d1d
Remove unecessary reference to ClipboardStatusNotifier ( #125255 )
...
fixes https://github.com/flutter/flutter/issues/99360
2023-04-21 22:38:06 +00:00
Hugo
d93ffc10c4
Fix the divider_theme space documentation problem ( #125195 )
...
In the specific implementation, the Divider uses the "space" field as the height for horizontal dividers, and the "space" field as the width for VerticalDivider , which is different from the documentation description.
2023-04-21 21:59:08 +00:00
Greg Spencer
11f8ee5bb0
Add docs for kIsWeb on defaultTargetPlatform ( #125313 )
...
## Description
Adding some see also links to connect `defaultTargetPlatform` and `kIsWeb` docs.
2023-04-21 19:11:29 +00:00
Justin McCandless
8784eb1d8e
Red spell check selection on iOS ( #125162 )
...
iOS now hides the selection handles and shows red selection when tapping a misspelled word, like native.
2023-04-21 09:15:08 -07:00
Bruno Leroux
d4f884e000
Make selectable text mouse cursor configurable ( #125133 )
...
## Description
This PR introduces `DefaultSelectionStyle.mouseCursor` to configure the mouse cursor over selectable text.
It also applies this solution to `InkResponse` to make the mouse cursor win over the default one provided by selectable `Text` for many Material components (such as buttons).
### Before
https://user-images.githubusercontent.com/840911/233627729-ddf98e2a-444d-4c6d-a6d5-f521982f48dd.mov
### After
https://user-images.githubusercontent.com/840911/233627718-8871a68f-d33c-44cf-b4a1-91bb1fcdf076.mov
## Related Issue
Fixes https://github.com/flutter/flutter/issues/104595
## Tests
Adds 6 tests.
2023-04-21 13:43:37 +00:00
Hans Muller
5d3c1ca870
Updated the BottomNavigationBar API doc to link to NavigationBar ( #125240 )
...
The BottomNavigationBar API doc now makes it clear that NavigationBar is preferred in new M3 applications.
Fixes https://github.com/flutter/flutter/issues/124687
2023-04-20 23:21:05 +00:00
Chris Bobbe
58e30852e6
BottomAppBar doc: Fix doc about surfaceTintColor ( #124563 )
2023-04-20 15:39:24 -07:00
Renzo Olivares
01b4dd5eee
Toolbar should re-appear on drag end ( #125165 )
...
#125151 introduced the magnifier on touch drag gestures, but when showing the magnifier the toolbar is implicitly hidden, this change makes the toolbar re-appear on drag end for double tap + drag.
2023-04-20 22:34:35 +00:00
Ian Hickson
55825f166e
Remove dynamic calls ( #125238 )
...
I don't know what I was thinking when I wrote this code back in 2017 but this is so trivially fixable...
2023-04-20 20:09:12 +00:00
Tae Hyung Kim
9caabdd220
Revert "Sliver Constrained Cross Axis" ( #125233 )
...
Going to make some changes to the implementation so I'll revert in the meantime.
Reverts flutter/flutter#124337
2023-04-20 18:47:50 +00:00
9oya
0c7bc2f9c9
Implement CheckmarkableChipAttributes on ChoiceChip ( #124743 )
2023-04-20 11:43:49 -07:00
Justin McCandless
13f4fe4091
Show iOS menu on iOS for TextField by default ( #124895 )
...
Even in TextField using the Material library, iOS devices will still show the iOS-style spell check toolbar by default when using spell check.
2023-04-20 11:09:37 -07:00
xubaolin
9f2e708831
DropdownMenu.width should support updating at runtime (#124847 )
...
Fixes https://github.com/flutter/flutter/issues/120567
2023-04-20 11:39:25 +00:00
Qun Cheng
3315b25740
Make search view shape clip the view content ( #125161 )
...
Fixes #124426
This PR is to make the search view shape clip the view content.
Before: the highlight and the "i" of "item 9" are not clipped by the shape.
<img width="350" alt="Screenshot 2023-04-19 at 12 09 48 PM" src="https://user-images.githubusercontent.com/36861262/233201222-468820a9-8717-4b6c-8528-8125a40fc161.png ">
After:
<img width="350" alt="Screenshot 2023-04-19 at 2 13 52 PM" src="https://user-images.githubusercontent.com/36861262/233201609-81f5a942-2390-4081-a9c7-c9523a7f9e72.png ">
2023-04-20 04:50:52 +00:00
Renzo Olivares
8ed26d8b8e
Show magnifier on touch drag gestures ( #125151 )
...
This change shows the magnifier on touch drag gestures for Android and iOS and hides it when the drag ends.
Fixes #118268
2023-04-20 04:49:05 +00:00
xubaolin
73f7945ba2
fix DropdownMenu crash when resize window during menu showing ( #124855 )
2023-04-19 14:21:49 -07:00
chunhtai
14e191fa75
Revert selectable update back to be a postframecallback or microtask ( #125140 )
...
The regression was caused by the previous pr https://github.com/flutter/flutter/pull/124624 changes postframecallback to scheduleframecallback. The reason is that if a new postframecallback was scheduled when running a postframecallback. The newly added postframecallback will be execute on the next frame. However, adding postframecallback will not schedule a new frame. So if there isn't other widget that schedule a new frame, the newly added postframecallback will never gets run.
After changing to scheduleframecallback, it causes an issue that transient callback may be called when rendering tree contains dirty layout information that are waiting to be rebuilt.
Therefore, I use microtask to get around of the postframecallback issue instead of scheduleframecallback.
fixes https://github.com/flutter/flutter/issues/125065
2023-04-19 19:48:12 +00:00
Qun Cheng
4c6929d4c9
Dismiss the docked search view when the window size is changed ( #125071 )
2023-04-19 11:23:20 -07:00
Justin McCandless
3128df832a
Disableable ContextMenuButtonItems ( #124253 )
...
Fixes https://github.com/flutter/flutter/issues/124247
| Native | Flutter before | Flutter after |
| --- | --- | --- |
| <img width="248" alt="Screenshot 2023-04-05 at 9 26 16 AM" src="https://user-images.githubusercontent.com/389558/230177116-154999e8-eef3-441d-9fe9-7063839a6b99.png "> | <img width="240" alt="Screenshot 2023-04-05 at 11 18 01 AM" src="https://user-images.githubusercontent.com/389558/230177125-1680e851-223e-4956-b5b6-1a24e11dc22a.png "> | <img width="226" alt="Screenshot 2023-04-05 at 11 17 36 AM" src="https://user-images.githubusercontent.com/389558/230177123-bde82134-67e1-4ce2-8eec-719eeb779bf4.png "> |
Also, it's now possible for anyone to create disabled buttons like this by setting ContextMenuButtonItem.onPressed to `null`.
2023-04-19 00:09:34 +00:00
Mitchell Goodwin
bd2617ecb9
Adaptive alert dialog ( #124336 )
...
Fixes #102811 . Adds an adaptive constructor to AlertDialog, along with the adaptive function showAdaptiveDialog.
<img width="357" alt="Screenshot 2023-04-06 at 10 40 18 AM" src="https://user-images.githubusercontent.com/58190796/230455412-31100922-cfc5-4252-b8c6-6f076353f29e.png ">
<img width="350" alt="Screenshot 2023-04-06 at 10 42 50 AM" src="https://user-images.githubusercontent.com/58190796/230455454-363dd37e-c44e-4aca-b6a0-cfa1d959f606.png ">
2023-04-18 23:00:03 +00:00
Srujan Gaddam
6edbc19597
Remove package:js/dart:js_interop conflicts ( #124879 )
...
dart:js_interop and package:js will start conflicting, since they both have an `@JS` annotation. Until we're ready to only use dart:js_interop (which will require updating the SDK constraints of every package), we should hide the `@JS` annotation from dart:js_interop. Due to shadowing, this is the behavior today, so there should be no functional change.
Unblocks https://dart-review.googlesource.com/c/sdk/+/294130/8 and prevents confusing shadowing of dart:js_interop annotations like we do today.
- [Mentioned CL that is unblocked] I listed at least one issue that this PR fixes in the description above.
- [Need test-exemption] I added new tests to check the change I am making, or this PR is [test-exempt].
- [Need to run] All existing and new tests are passing.
2023-04-18 22:15:53 +00:00
Greg Spencer
4b39f071f3
Add controller argument to SubmenuButton ( #125000 )
...
## Description
This adds an optional argument to the `SubmenuButton` that allows the creator to supply a `MenuController` for controlling the menu.
## Related Issues
- Fixes https://github.com/flutter/flutter/issues/124988
## Tests
- Added tests for new argument.
2023-04-18 21:09:53 +00:00
Justin McCandless
f04a5afb58
Limit the number of Material spell check suggestions to 3 ( #124899 )
...
Fixes a bug where the spell check menu could overflow.
2023-04-18 12:50:12 -07:00
Michael Goderbauer
df811c6d79
Remove unused getRootRenderObject and getSelectedRenderObject service extensions ( #124805 )
...
These are currently unused and will not work in a multi-view environment where we will have multiple render trees.
Work towards https://github.com/flutter/flutter/issues/121573 .
2023-04-18 18:54:27 +00:00
Justin McCandless
9d6883135a
Remove unused context parameter ( #124254 )
...
Tidying up the spell check API.
2023-04-18 10:31:05 -07:00