-
Notifications
You must be signed in to change notification settings - Fork 29.7k
Fix LinearProgressIndicator track painting. #173108
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix LinearProgressIndicator track painting. #173108
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request fixes an issue where the LinearProgressIndicator track was painting outside of its bounds when a trackGap was specified. The fix involves clamping the track's rectangle coordinates and adding a check for track width before drawing. A regression golden test has also been added.
|
Golden file changes have been found for this pull request. Click here to view and triage (e.g. because this is an intentional change). If you are still iterating on this change and are not ready to resolve the images on the Flutter Gold dashboard, consider marking this PR as a draft pull request above. You will still be able to view image results on the dashboard, commenting will be silenced, and the check will not try to resolve itself until marked ready for review. For more guidance, visit Writing a golden file test for Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing. |
|
This pull request has been changed to a draft. The currently pending flutter-gold status will not be able to resolve until a new commit is pushed or the change is marked ready for review again. For more guidance, visit Writing a golden file test for Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing. |
|
Golden file changes are available for triage from new commit, Click here to view. For more guidance, visit Writing a golden file test for Reviewers: Read the Tree Hygiene page and make sure this patch meets those guidelines before LGTMing. |
QuncCccccc
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I haven't finished my review but thank you so much for your contribution. Overall it looks good! Will take another look! The golden tests look great!
|
Hi @QuncCccccc, thanks a lot for your review and suggestions! I added a number of comments to help understand the code. Could you please take a look again when you have time? |
|
@QuncCccccc, I noticed that the Android Below is the comparison of the two approaches with a track_gaps.movThe code for the new approach: double getEffectiveTrackGapFraction(double currentValue, double trackGapFraction) {
// If the progress is less than 1%, the gap will be proportional to the
// progress. So that, it draws a full track at 0%.
const double kGapRampDownThreshold = 0.01;
return trackGapFraction *
clampDouble(currentValue, 0, kGapRampDownThreshold) /
kGapRampDownThreshold;
}Given this difference in the effective |
|
I think both are fine. We can use the current algorithm as is because I think usually the gap is small and we can barely detect the difference during animation. Update: I just talked with @TahaTesser who implemented the updated LinearProgressIndicator. Since overall the Android material-components repo are more reliable and usually have faster updates from newer Material specs, keeping the original calculation (material-components) would be a better option. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. Thank for your fix:) Add this comment here again in case it's missed:) #173108 (comment)
|
@QuncCccccc thanks a lot for your review and suggestions! |
|
@QuncCccccc I don't see |
|
Oh thank for letting me know! For this kind of change, we probably should only submit it after Google testing has passed next time.
Yeah, the google testing sometimes just don't start testing. Might need to try to re-trigger it by rebasing with master. |
Roll Flutter from 6b18740d5a23 to 87d5b753196c (88 revisions) flutter/flutter@6b18740...87d5b75 2025-09-05 [email protected] [ Device Lab ] Add regression testing for flutter/flutter#174952 (flutter/flutter#174956) 2025-09-05 [email protected] Roll Skia from 0ca53adfc6cc to 845ec125e94c (2 revisions) (flutter/flutter#174978) 2025-09-05 [email protected] [a11y-app] Fix NavigationRail leading and trailing labels (flutter/flutter#174861) 2025-09-05 [email protected] Roll Skia from d7e99be07d5d to 0ca53adfc6cc (5 revisions) (flutter/flutter#174972) 2025-09-05 [email protected] Roll Fuchsia Linux SDK from izfNA3o_2zL4Cjqmy... to xG_uERsxHvUwFHpF2... (flutter/flutter#174970) 2025-09-04 [email protected] Fix IconButton.color overrided by IconButtomTheme (flutter/flutter#174515) 2025-09-04 [email protected] [web] Reuse chrome instance to run all flutter tests (flutter/flutter#174957) 2025-09-04 [email protected] fix(Semantics): Ensure semantics properties take priority over button's (flutter/flutter#174473) 2025-09-04 [email protected] Make every LLDB Init error message actionable (flutter/flutter#174726) 2025-09-04 [email protected] Fix table cell semantics rect alignment issues. (flutter/flutter#174914) 2025-09-04 [email protected] Fix: Use route navigator for CupertinoSheetRoute pop (flutter/flutter#173103) 2025-09-04 [email protected] [ Widget Preview] Add `group` property to `Preview` (flutter/flutter#174849) 2025-09-04 [email protected] Allow OverlayPortal.overlayChildLayoutBuilder to choose root Overlay (flutter/flutter#174239) 2025-09-04 [email protected] Roll Skia from 7c2f502e3304 to d7e99be07d5d (18 revisions) (flutter/flutter#174936) 2025-09-04 [email protected] Remove 'terms of use' wording from web_unicode (flutter/flutter#174939) 2025-09-04 [email protected] [ Tool ] Remove leftover Android x86 deprecation warning constant (flutter/flutter#174941) 2025-09-04 [email protected] Prevent potential crash when accessing window in FlutterSceneDelegate (flutter/flutter#174873) 2025-09-04 [email protected] Roll Packages from 42bb347 to 98580c6 (5 revisions) (flutter/flutter#174943) 2025-09-04 [email protected] [ Device Lab ] Fix wakefulness check to only match log entries with string values (flutter/flutter#174953) 2025-09-04 [email protected] Fix expanded DropdownMenu panel is shorter than text field (flutter/flutter#174443) 2025-09-04 [email protected] Add a `viewController` property to the ios/macOS `FlutterPluginRegistrar` protocol (flutter/flutter#174168) 2025-09-03 [email protected] Roll Fuchsia Linux SDK from J3T_wZqL_57mRfWky... to izfNA3o_2zL4Cjqmy... (flutter/flutter#174908) 2025-09-03 [email protected] Wires up Android API to set section locale (flutter/flutter#173364) 2025-09-03 [email protected] Delete impeller::SPrintF. (flutter/flutter#174900) 2025-09-03 [email protected] Make sure that a DropdownMenuFormField doesn't crash in 0x0 environment (flutter/flutter#174777) 2025-09-03 [email protected] Remove unnecessary `presubmit_max_attempts` from .ci.yaml (flutter/flutter#174885) 2025-09-03 [email protected] Use local canvaskit in `dart_data_asset_test.dart` (flutter/flutter#174891) 2025-09-03 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Mark Linux web_canvaskit_tests_7_last as bringup (#174878)" (flutter/flutter#174897) 2025-09-03 [email protected] Correct intrinsics calculation for CupertinoTextField with placeholder (flutter/flutter#174889) 2025-09-03 [email protected] Considers large title height in CupertinoNavigationBar's preferred size (flutter/flutter#173722) 2025-09-03 [email protected] [A11y] Add semantics for CupertinoExpansionTile (flutter/flutter#174480) 2025-09-03 [email protected] Fix LinearProgressIndicator track painting. (flutter/flutter#173108) 2025-09-03 [email protected] update triage documentation to include team-android (flutter/flutter#174850) 2025-09-03 [email protected] Update `test_timeout_secs` to match `timeout` for `Linux web_skwasm_tests_*` and `Linux web_canvaskit_tests_*` (flutter/flutter#174881) 2025-09-03 [email protected] Roll Packages from 5d785a0 to 42bb347 (10 revisions) (flutter/flutter#174876) 2025-09-03 [email protected] Fixup formatting of gn files in the old buildroot. (flutter/flutter#174852) 2025-09-03 [email protected] Roll Dart SDK to 3.10.0-162.1.beta (flutter/flutter#174834) 2025-09-03 [email protected] Mark Linux web_canvaskit_tests_7_last as bringup (flutter/flutter#174878) 2025-09-02 [email protected] [Impeller] Fix overdraw in DrawRect geometry (flutter/flutter#174735) 2025-09-02 [email protected] Patch .clang-format files to specify C++20. (flutter/flutter#174848) 2025-09-02 [email protected] Add data assets (flutter/flutter#174685) 2025-09-02 [email protected] refactors `FlutterPlugin.kt` to use one line statement in the `into` bloc (flutter/flutter#174759) 2025-09-02 [email protected] Ensures initial semantics state is sent to engine (flutter/flutter#174845) 2025-09-02 [email protected] [Android] Break up plugin_test integration tests (flutter/flutter#174728) 2025-09-02 [email protected] Fix: Assertion failure in RawScrollbarState with dynamic controller assignment (flutter/flutter#173156) 2025-09-02 [email protected] Roll Skia from 359f3d7cc7ed to 7c2f502e3304 (1 revision) (flutter/flutter#174844) ...
Fixes flutter#164538 Fixes flutter#173096 Fixes flutter#173153 ### Description - Adds support for `trackGap` in indeterminate `LinearProgressIndicator` - Fixes track painting outside of `LinearProgressIndicator` bounds when `trackGap` is greater than zero - Fixes `LinearProgressIndicator` track gap painting when `value` is 0 - Adds golden tests _Compose `ProgressIndicator` [implementation](https://android.googlesource.com/platform/frameworks/support/+/refs/heads/androidx-main/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/ProgressIndicator.kt) was used as a reference._ <table> <thead> <tr> <th>Before</th> <th>After</th> </tr> </thead> <tbody> <td colspan="2" align="center">Determinate (regular)</code></td> </tr> <tr> <td><img width="750" height="510" alt="before" src="https://github.com/user-attachments/assets/e68d34b4-b459-4c99-ad9f-877fcb3cb168" /></td> <td><img width="750" height="510" alt="after" src="https://github.com/user-attachments/assets/0fbb5fe1-8b45-47c1-ade4-179b4da21be1" /></td> </tr> <td colspan="2" align="center">Determinate (<code>trackGap: 20</code>)</td> <tr> <td><img width="750" height="510" alt="before" src="https://github.com/user-attachments/assets/a6442b24-cbd0-4b6b-aa21-d5a13137e109" /></td> <td><img width="750" height="510" alt="after" src="https://github.com/user-attachments/assets/9f8228ff-3a8b-42f7-aada-fd29cc950082" /></td> </tr> <tr> <td colspan="2" align="center">Indeterminate (regular)</code></td> </tr> <tr> <td><img width="750" height="510" alt="before" src="https://github.com/user-attachments/assets/b417e438-fd91-409c-85bc-f34e2adcd753" /></td> <td><img width="750" height="510" alt="after" src="https://github.com/user-attachments/assets/2a4865e2-c7d9-43a6-bd25-39012e5be389" /></td> </tr> <tr> <td colspan="2" align="center">Indeterminate (<code>trackGap: 20</code>)</td> </tr> <tr> <td><img width="750" height="510" alt="before" src="https://github.com/user-attachments/assets/b94c6f41-94e2-4b6e-9c9b-5ec3486a77a8" /></td> <td><img width="750" height="510" alt="after" src="https://github.com/user-attachments/assets/396c3386-8d42-4b82-a890-f21d6897cbdb" /></td> </tr> </tbody> </table> ## 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
Fixes flutter#164538 Fixes flutter#173096 Fixes flutter#173153 ### Description - Adds support for `trackGap` in indeterminate `LinearProgressIndicator` - Fixes track painting outside of `LinearProgressIndicator` bounds when `trackGap` is greater than zero - Fixes `LinearProgressIndicator` track gap painting when `value` is 0 - Adds golden tests _Compose `ProgressIndicator` [implementation](https://android.googlesource.com/platform/frameworks/support/+/refs/heads/androidx-main/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/ProgressIndicator.kt) was used as a reference._ <table> <thead> <tr> <th>Before</th> <th>After</th> </tr> </thead> <tbody> <td colspan="2" align="center">Determinate (regular)</code></td> </tr> <tr> <td><img width="750" height="510" alt="before" src="https://github.com/user-attachments/assets/e68d34b4-b459-4c99-ad9f-877fcb3cb168" /></td> <td><img width="750" height="510" alt="after" src="https://github.com/user-attachments/assets/0fbb5fe1-8b45-47c1-ade4-179b4da21be1" /></td> </tr> <td colspan="2" align="center">Determinate (<code>trackGap: 20</code>)</td> <tr> <td><img width="750" height="510" alt="before" src="https://github.com/user-attachments/assets/a6442b24-cbd0-4b6b-aa21-d5a13137e109" /></td> <td><img width="750" height="510" alt="after" src="https://github.com/user-attachments/assets/9f8228ff-3a8b-42f7-aada-fd29cc950082" /></td> </tr> <tr> <td colspan="2" align="center">Indeterminate (regular)</code></td> </tr> <tr> <td><img width="750" height="510" alt="before" src="https://github.com/user-attachments/assets/b417e438-fd91-409c-85bc-f34e2adcd753" /></td> <td><img width="750" height="510" alt="after" src="https://github.com/user-attachments/assets/2a4865e2-c7d9-43a6-bd25-39012e5be389" /></td> </tr> <tr> <td colspan="2" align="center">Indeterminate (<code>trackGap: 20</code>)</td> </tr> <tr> <td><img width="750" height="510" alt="before" src="https://github.com/user-attachments/assets/b94c6f41-94e2-4b6e-9c9b-5ec3486a77a8" /></td> <td><img width="750" height="510" alt="after" src="https://github.com/user-attachments/assets/396c3386-8d42-4b82-a890-f21d6897cbdb" /></td> </tr> </tbody> </table> ## 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
…r#9962) Roll Flutter from 6b18740d5a23 to 87d5b753196c (88 revisions) flutter/flutter@6b18740...87d5b75 2025-09-05 [email protected] [ Device Lab ] Add regression testing for flutter/flutter#174952 (flutter/flutter#174956) 2025-09-05 [email protected] Roll Skia from 0ca53adfc6cc to 845ec125e94c (2 revisions) (flutter/flutter#174978) 2025-09-05 [email protected] [a11y-app] Fix NavigationRail leading and trailing labels (flutter/flutter#174861) 2025-09-05 [email protected] Roll Skia from d7e99be07d5d to 0ca53adfc6cc (5 revisions) (flutter/flutter#174972) 2025-09-05 [email protected] Roll Fuchsia Linux SDK from izfNA3o_2zL4Cjqmy... to xG_uERsxHvUwFHpF2... (flutter/flutter#174970) 2025-09-04 [email protected] Fix IconButton.color overrided by IconButtomTheme (flutter/flutter#174515) 2025-09-04 [email protected] [web] Reuse chrome instance to run all flutter tests (flutter/flutter#174957) 2025-09-04 [email protected] fix(Semantics): Ensure semantics properties take priority over button's (flutter/flutter#174473) 2025-09-04 [email protected] Make every LLDB Init error message actionable (flutter/flutter#174726) 2025-09-04 [email protected] Fix table cell semantics rect alignment issues. (flutter/flutter#174914) 2025-09-04 [email protected] Fix: Use route navigator for CupertinoSheetRoute pop (flutter/flutter#173103) 2025-09-04 [email protected] [ Widget Preview] Add `group` property to `Preview` (flutter/flutter#174849) 2025-09-04 [email protected] Allow OverlayPortal.overlayChildLayoutBuilder to choose root Overlay (flutter/flutter#174239) 2025-09-04 [email protected] Roll Skia from 7c2f502e3304 to d7e99be07d5d (18 revisions) (flutter/flutter#174936) 2025-09-04 [email protected] Remove 'terms of use' wording from web_unicode (flutter/flutter#174939) 2025-09-04 [email protected] [ Tool ] Remove leftover Android x86 deprecation warning constant (flutter/flutter#174941) 2025-09-04 [email protected] Prevent potential crash when accessing window in FlutterSceneDelegate (flutter/flutter#174873) 2025-09-04 [email protected] Roll Packages from 42bb347 to 98580c6 (5 revisions) (flutter/flutter#174943) 2025-09-04 [email protected] [ Device Lab ] Fix wakefulness check to only match log entries with string values (flutter/flutter#174953) 2025-09-04 [email protected] Fix expanded DropdownMenu panel is shorter than text field (flutter/flutter#174443) 2025-09-04 [email protected] Add a `viewController` property to the ios/macOS `FlutterPluginRegistrar` protocol (flutter/flutter#174168) 2025-09-03 [email protected] Roll Fuchsia Linux SDK from J3T_wZqL_57mRfWky... to izfNA3o_2zL4Cjqmy... (flutter/flutter#174908) 2025-09-03 [email protected] Wires up Android API to set section locale (flutter/flutter#173364) 2025-09-03 [email protected] Delete impeller::SPrintF. (flutter/flutter#174900) 2025-09-03 [email protected] Make sure that a DropdownMenuFormField doesn't crash in 0x0 environment (flutter/flutter#174777) 2025-09-03 [email protected] Remove unnecessary `presubmit_max_attempts` from .ci.yaml (flutter/flutter#174885) 2025-09-03 [email protected] Use local canvaskit in `dart_data_asset_test.dart` (flutter/flutter#174891) 2025-09-03 98614782+auto-submit[bot]@users.noreply.github.com Reverts "Mark Linux web_canvaskit_tests_7_last as bringup (#174878)" (flutter/flutter#174897) 2025-09-03 [email protected] Correct intrinsics calculation for CupertinoTextField with placeholder (flutter/flutter#174889) 2025-09-03 [email protected] Considers large title height in CupertinoNavigationBar's preferred size (flutter/flutter#173722) 2025-09-03 [email protected] [A11y] Add semantics for CupertinoExpansionTile (flutter/flutter#174480) 2025-09-03 [email protected] Fix LinearProgressIndicator track painting. (flutter/flutter#173108) 2025-09-03 [email protected] update triage documentation to include team-android (flutter/flutter#174850) 2025-09-03 [email protected] Update `test_timeout_secs` to match `timeout` for `Linux web_skwasm_tests_*` and `Linux web_canvaskit_tests_*` (flutter/flutter#174881) 2025-09-03 [email protected] Roll Packages from 5d785a0 to 42bb347 (10 revisions) (flutter/flutter#174876) 2025-09-03 [email protected] Fixup formatting of gn files in the old buildroot. (flutter/flutter#174852) 2025-09-03 [email protected] Roll Dart SDK to 3.10.0-162.1.beta (flutter/flutter#174834) 2025-09-03 [email protected] Mark Linux web_canvaskit_tests_7_last as bringup (flutter/flutter#174878) 2025-09-02 [email protected] [Impeller] Fix overdraw in DrawRect geometry (flutter/flutter#174735) 2025-09-02 [email protected] Patch .clang-format files to specify C++20. (flutter/flutter#174848) 2025-09-02 [email protected] Add data assets (flutter/flutter#174685) 2025-09-02 [email protected] refactors `FlutterPlugin.kt` to use one line statement in the `into` bloc (flutter/flutter#174759) 2025-09-02 [email protected] Ensures initial semantics state is sent to engine (flutter/flutter#174845) 2025-09-02 [email protected] [Android] Break up plugin_test integration tests (flutter/flutter#174728) 2025-09-02 [email protected] Fix: Assertion failure in RawScrollbarState with dynamic controller assignment (flutter/flutter#173156) 2025-09-02 [email protected] Roll Skia from 359f3d7cc7ed to 7c2f502e3304 (1 revision) (flutter/flutter#174844) ...
Fixes flutter#164538 Fixes flutter#173096 Fixes flutter#173153 ### Description - Adds support for `trackGap` in indeterminate `LinearProgressIndicator` - Fixes track painting outside of `LinearProgressIndicator` bounds when `trackGap` is greater than zero - Fixes `LinearProgressIndicator` track gap painting when `value` is 0 - Adds golden tests _Compose `ProgressIndicator` [implementation](https://android.googlesource.com/platform/frameworks/support/+/refs/heads/androidx-main/compose/material3/material3/src/commonMain/kotlin/androidx/compose/material3/ProgressIndicator.kt) was used as a reference._ <table> <thead> <tr> <th>Before</th> <th>After</th> </tr> </thead> <tbody> <td colspan="2" align="center">Determinate (regular)</code></td> </tr> <tr> <td><img width="750" height="510" alt="before" src="https://github.com/user-attachments/assets/e68d34b4-b459-4c99-ad9f-877fcb3cb168" /></td> <td><img width="750" height="510" alt="after" src="https://github.com/user-attachments/assets/0fbb5fe1-8b45-47c1-ade4-179b4da21be1" /></td> </tr> <td colspan="2" align="center">Determinate (<code>trackGap: 20</code>)</td> <tr> <td><img width="750" height="510" alt="before" src="https://github.com/user-attachments/assets/a6442b24-cbd0-4b6b-aa21-d5a13137e109" /></td> <td><img width="750" height="510" alt="after" src="https://github.com/user-attachments/assets/9f8228ff-3a8b-42f7-aada-fd29cc950082" /></td> </tr> <tr> <td colspan="2" align="center">Indeterminate (regular)</code></td> </tr> <tr> <td><img width="750" height="510" alt="before" src="https://github.com/user-attachments/assets/b417e438-fd91-409c-85bc-f34e2adcd753" /></td> <td><img width="750" height="510" alt="after" src="https://github.com/user-attachments/assets/2a4865e2-c7d9-43a6-bd25-39012e5be389" /></td> </tr> <tr> <td colspan="2" align="center">Indeterminate (<code>trackGap: 20</code>)</td> </tr> <tr> <td><img width="750" height="510" alt="before" src="https://github.com/user-attachments/assets/b94c6f41-94e2-4b6e-9c9b-5ec3486a77a8" /></td> <td><img width="750" height="510" alt="after" src="https://github.com/user-attachments/assets/396c3386-8d42-4b82-a890-f21d6897cbdb" /></td> </tr> </tbody> </table> ## 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
Fixes #164538
Fixes #173096
Fixes #173153
Description
trackGapin indeterminateLinearProgressIndicatorLinearProgressIndicatorbounds whentrackGapis greater than zeroLinearProgressIndicatortrack gap painting whenvalueis 0androidx.compose.material3 and material-components-android implementations were used as a reference.
trackGap: 20)trackGap: 20)Pre-launch Checklist
///).If you need help, consider asking for advice on the #hackers-new channel on Discord.