Valentin Vignal
b086fe7b79
Add backgroundColor to Radio (#169415)
Part of https://github.com/flutter/flutter/issues/168787
Adds `backgroundColor` property to `Radio`
This code sample is now possible:
<details>
<summary>Example</summary>
```dart
// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'package:flutter/material.dart';
void main() {
runApp(const MyWidget());
}
class MyWidget extends StatefulWidget {
const MyWidget({super.key});
@override
State<MyWidget> createState() => _MyWidgetState();
}
class _MyWidgetState extends State<MyWidget> {
bool? _value;
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Column(
children: <Widget>[
Radio<bool>(
value: true,
groupValue: _value,
toggleable: true,
onChanged: (bool? value) {
setState(() {
// Toggle the value when the radio button is pressed
_value = value;
});
},
activeColor: Colors.red,
fillColor: MaterialStateProperty.resolveWith<Color>((Set<MaterialState> states) {
if (states.contains(MaterialState.selected)) {
return Colors.green;
}
return Colors.blue; // Default color when not selected
}),
backgroundColor: MaterialStateProperty.resolveWith<Color>((
Set<MaterialState> states,
) {
if (states.contains(MaterialState.selected)) {
return Colors.orange.withOpacity(0.5);
}
return Colors.purple.withOpacity(0.5); // Default background color when not selected
}),
),
Radio<bool>(
value: false,
groupValue: _value,
toggleable: true,
onChanged: (bool? value) {
setState(() {
// Toggle the value when the radio button is pressed
_value = value;
});
},
),
],
),
),
);
}
}
```
</details>
https://github.com/user-attachments/assets/d1a9d422-89f6-4b28-bb6c-add6ead13a21
## 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
2025-06-10 01:38:08 +00:00
..
2025-03-14 17:50:20 +00:00
2025-01-22 21:52:11 +00:00
2025-03-14 17:50:20 +00:00
2024-12-19 20:06:21 +00:00
2024-12-19 20:06:21 +00:00
2025-03-14 17:50:20 +00:00
2025-05-07 16:52:38 +00:00
2025-04-15 23:52:25 +00:00
2025-05-07 16:52:38 +00:00
2024-12-19 20:06:21 +00:00
2025-06-02 13:58:26 +00:00
2024-12-19 20:06:21 +00:00
2025-05-05 01:28:40 +00:00
2025-03-14 17:50:20 +00:00
2025-03-14 17:50:20 +00:00
2025-03-14 17:50:20 +00:00
2025-01-24 21:33:27 +00:00
2025-03-14 17:50:20 +00:00
2025-05-14 17:38:18 +00:00
2025-05-14 17:38:18 +00:00
2025-05-30 21:57:30 +00:00
2024-12-19 20:06:21 +00:00
2025-05-30 21:57:30 +00:00
2025-03-14 17:50:20 +00:00
2024-12-19 20:06:21 +00:00
2024-12-19 20:06:21 +00:00
2025-04-30 23:46:11 +00:00
2024-12-19 20:06:21 +00:00
2025-04-02 21:28:56 +00:00
2025-05-30 21:57:30 +00:00
2025-03-14 17:50:20 +00:00
2025-05-23 00:02:01 +00:00
2025-04-16 19:10:38 +00:00
2025-05-14 02:07:34 +00:00
2025-03-14 17:50:20 +00:00
2024-12-19 20:06:21 +00:00
2025-05-16 22:39:54 +00:00
2025-03-14 17:50:20 +00:00
2025-03-14 17:50:20 +00:00
2025-01-14 05:13:41 +00:00
2024-12-19 20:06:21 +00:00
2024-12-19 20:06:21 +00:00
2024-12-19 20:06:21 +00:00
2025-04-02 22:00:19 +00:00
2024-12-19 20:06:21 +00:00
2025-05-13 23:48:10 +00:00
2025-04-11 19:38:16 +00:00
2025-05-21 21:28:29 +00:00
2025-02-06 18:40:25 +00:00
2024-12-19 20:06:21 +00:00
2024-12-19 20:06:21 +00:00
2025-05-21 18:28:23 +00:00
2025-05-02 20:52:14 +00:00
2025-03-14 17:50:20 +00:00
2025-03-14 17:50:20 +00:00
2025-03-14 17:50:20 +00:00
2025-05-12 23:37:28 +00:00
2025-03-14 17:50:20 +00:00
2025-05-12 21:30:47 +00:00
2025-05-02 19:41:10 +00:00
2025-05-22 04:26:06 +00:00
2024-12-19 20:06:21 +00:00
2025-05-12 08:48:22 +00:00
2025-04-30 23:46:11 +00:00
2025-03-14 17:50:20 +00:00
2024-12-19 20:06:21 +00:00
2024-12-19 20:06:21 +00:00
2024-12-19 20:06:21 +00:00
2025-04-02 21:28:56 +00:00
2025-01-22 21:52:11 +00:00
2025-04-30 23:46:11 +00:00
2025-02-13 08:33:12 +00:00
2025-01-24 21:33:27 +00:00
2024-12-19 20:06:21 +00:00
2024-12-19 20:06:21 +00:00
2025-01-24 21:33:27 +00:00
2024-12-19 20:06:21 +00:00
2025-03-14 17:50:20 +00:00
2025-03-14 17:50:20 +00:00
2024-12-19 20:06:21 +00:00
2025-04-30 23:46:11 +00:00
2025-03-14 17:50:20 +00:00
2024-12-19 20:06:21 +00:00
2024-12-19 20:06:21 +00:00
2025-01-24 21:33:27 +00:00
2025-03-14 17:50:20 +00:00
2025-01-24 21:33:27 +00:00
2024-12-19 20:06:21 +00:00
2025-01-22 21:52:11 +00:00
2025-04-02 22:00:19 +00:00
2025-05-02 23:34:04 +00:00
2025-05-09 17:23:34 +00:00
2025-04-09 04:47:20 +00:00
2024-12-19 20:06:21 +00:00
2024-12-19 20:06:21 +00:00
2024-12-19 20:06:21 +00:00
2024-12-19 20:06:21 +00:00
2024-12-19 20:06:21 +00:00
2024-12-19 20:06:21 +00:00
2025-03-14 17:50:20 +00:00
2025-05-05 23:57:33 +00:00
2024-12-19 20:06:21 +00:00
2025-01-24 21:33:27 +00:00
2024-12-19 20:06:21 +00:00
2024-12-19 20:06:21 +00:00
2025-06-02 08:00:46 +00:00
2025-06-02 08:00:46 +00:00
2025-06-02 08:00:46 +00:00
2025-06-02 08:00:46 +00:00
2025-06-02 08:00:46 +00:00
2025-06-02 08:00:46 +00:00
2025-04-30 23:46:11 +00:00
2025-03-14 17:50:20 +00:00
2024-12-19 20:06:21 +00:00
2025-03-14 17:50:20 +00:00
2025-05-06 23:36:52 +00:00
2025-03-17 17:00:05 +00:00
2024-12-19 20:06:21 +00:00
2025-04-03 00:33:58 +00:00
2025-03-14 17:50:20 +00:00
2025-05-19 22:06:58 +00:00
2025-05-26 21:55:10 +00:00
2025-02-20 07:48:23 +00:00
2025-06-02 19:03:51 +00:00
2025-06-10 01:38:08 +00:00
2024-12-19 20:06:21 +00:00
2025-05-19 17:10:12 +00:00
2024-12-19 20:06:21 +00:00
2025-03-14 17:50:20 +00:00
2025-04-02 21:28:56 +00:00
2025-05-22 04:26:06 +00:00
2024-12-19 20:06:21 +00:00
2024-12-19 20:06:21 +00:00
2024-12-19 20:06:21 +00:00
2025-05-02 23:32:32 +00:00
2025-03-14 17:50:20 +00:00
2025-05-01 18:15:49 +00:00
2025-03-14 17:50:20 +00:00
2025-04-15 23:52:25 +00:00
2025-03-14 17:50:20 +00:00
2025-05-22 21:43:54 +00:00
2025-05-26 21:55:10 +00:00
2025-05-19 17:10:12 +00:00
2025-03-14 17:50:20 +00:00
2025-03-14 17:50:20 +00:00
2024-12-19 20:06:21 +00:00
2024-12-19 20:06:21 +00:00
2025-03-14 17:50:20 +00:00
2025-05-06 05:25:32 +00:00
2025-04-30 18:43:49 +00:00
2025-03-14 17:50:20 +00:00
2025-03-14 17:50:20 +00:00
2024-12-19 20:06:21 +00:00
2024-12-19 20:06:21 +00:00
2025-05-22 21:06:03 +00:00
2025-01-15 11:23:41 +00:00
2025-04-30 23:46:11 +00:00
2025-03-14 17:50:20 +00:00
2025-01-14 05:13:41 +00:00
2024-12-19 20:06:21 +00:00
2024-12-19 20:06:21 +00:00
2025-03-14 17:50:20 +00:00
2025-06-09 20:10:46 +00:00
2025-04-10 07:11:24 +00:00
2025-05-02 23:32:32 +00:00
2024-12-19 20:06:21 +00:00
2025-03-14 17:50:20 +00:00
2025-03-14 17:50:20 +00:00
2025-03-14 17:50:20 +00:00
2025-02-21 18:40:05 +00:00
2025-05-14 17:38:18 +00:00
2025-03-14 17:50:20 +00:00
2025-05-16 17:29:12 +00:00
2025-05-02 01:57:19 +00:00
2025-03-14 17:50:20 +00:00
2024-12-19 20:06:21 +00:00
2025-04-15 23:52:25 +00:00
2025-04-15 23:52:25 +00:00
2025-05-20 20:23:07 +00:00
2025-03-17 17:00:05 +00:00
2024-12-19 20:06:21 +00:00
2025-03-14 17:50:20 +00:00
2024-12-19 20:06:21 +00:00
2024-12-19 20:06:21 +00:00
2024-12-19 20:06:21 +00:00