Repository: flutter
Issue: Support  Cupertino SwitchThemeData like Material SwitchThemeData
Labels: c: new feature,framework,f: cupertino,c: proposal,P3,team-design,triaged-design

### Is there an existing issue for this?

- [X] I have searched the [existing issues](https://github.com/flutter/flutter/issues)
- [X] I have read the [guide to filing a bug](https://flutter.dev/docs/resources/bug-reports)

### Use case

Currently, the switch widget under Material can use Theme.switchTheme to configure the colors of thumb, track, etc.
 
However, the switch under Cupertino can only configure the track color in the open state based on CupertinoThemeData.primaryColor.In addition, the track color in the thumb and closed states cannot be configured. 

For scenarios where the application wants to both CupertinoSwitch and modify the theme color, it cannot be satisfied.

This issue hopes to have a switch similar to Material that can configure the switch color in Theme.switchTheme and Material.theme.switchTheme.

1. Material.theme
```dart
MaterialApp(
  theme: ThemeData(
    switchTheme: SwitchThemeData(
      overlayColor: MaterialStateProperty.all(Colors.red),
      thumbColor: MaterialStateProperty.all(Colors.blue),
      trackColor: MaterialStateProperty.all(Colors.yellow.withOpacity(0.5)),
    ),
  ),
  home: Scaffold(
      body: Switch(
            value: true,
            onChanged: null,
          )
  )
);
```

2. Use Theme widget
```dart
Theme(data: ThemeData(
    switchTheme: SwitchThemeData(
      overlayColor: MaterialStateProperty.all(Colors.red),
      thumbColor: MaterialStateProperty.all(Colors.blue),
      trackColor: MaterialStateProperty.all(Colors.yellow.withOpacity(0.5)),
    )
  ), child: Switch(
    value: true,
    onChanged: null,
  )

)
```

3. Use Switch property

```
Switch(
        overlayColor: MaterialStateProperty.all(Colors.red),
        thumbColor: MaterialStateProperty.all(Colors.blue),
        trackColor: MaterialStateProperty.all(Colors.yellow.withOpacity(0.5)),
        value: true,
        onChanged: null,
  )
```

### Proposal


# Expect API

It is expected that CupertinoSwitch has a similar SwitchThemeData that can be configured

1. CupertinoApp.theme.switchTheme  （Similar to Material in MaterialApp.theme.switchTheme）
```dart
CupertinoApp(
    theme: CupertinoThemeData(
      switchTheme: CupertinoSwitchThemeData(
          activeColor: Colors.yellow,
          trackColor: Colors.red,
          thumbColor: Colors.blue,
        ),           
    ),
    home: Scaffold(
        body: Padding(
            padding: const EdgeInsets.only(top: 100.0),
            child: CupertinoSwitch(
              value: true,
              onChanged: (bool value) {},
            ),
        ),
    ),
);
```

2. CupertinoTheme.data.switchTheme （Similar to Material in Theme.data.switchTheme）
```dart
CupertinoTheme(
  data: const CupertinoThemeData(
    switchTheme: CupertinoSwitchThemeData(
      activeColor: Colors.yellow,
      trackColor: Colors.red,
      thumbColor: Colors.blue,
    ),
  ),
  child: CupertinoSwitch(
    value: true,
    onChanged: (bool value) {},
  ),
)
```

3. MaterialApp.theme.cupertinoOverrideTheme 
```dart
MaterialApp(
  theme: ThemeData(
    cupertinoOverrideTheme: const CupertinoThemeData(
      primaryColor: Colors.greenAccent,
      switchTheme: CupertinoSwitchThemeData(
        activeColor: Colors.red,
        trackColor: Colors.yellowAccent,
        thumbColor: Colors.blue,
      ),
    ),
  ),
  home: Scaffold(
    body: CupertinoSwitch(
      value: true,
      onChanged: null,
    ),
  ),
)
```


I wrote a related https://github.com/flutter/flutter/pull/135120  to add this feature. If this feature can be added, I will be happy to continue to advance the progress.