Виджет Switch
использует адаптивный режим, и если вы проверите исходный код, вы найдете что-то вроде этого:
@override
Widget build(BuildContext context) {
switch (widget._switchType) {
case _SwitchType.material:
return buildMaterialSwitch(context);
case _SwitchType.adaptive: {
final ThemeData theme = Theme.of(context);
assert(theme.platform != null);
switch (theme.platform) {
case TargetPlatform.android:
case TargetPlatform.fuchsia:
return buildMaterialSwitch(context);
case TargetPlatform.iOS:
return buildCupertinoSwitch(context);
}
}
}
assert(false);
return null;
}
}
Он будет использовать метод buildMaterialSwitch
для Android
иbuildCupertinoSwitch
для iOS.
Проверка метода buildCupertinoSwitch
:
Widget buildCupertinoSwitch(BuildContext context) {
final Size size = getSwitchSize(Theme.of(context));
return Container(
width: size.width, // Same size as the Material switch.
height: size.height,
alignment: Alignment.center,
child: CupertinoSwitch(
dragStartBehavior: widget.dragStartBehavior,
value: widget.value,
onChanged: widget.onChanged,
activeColor: widget.activeColor,
),
);
}
Это ключ, тогда вы должны использовать CupertinoSwitch
widget :), просто не забудьтедобавить импорт:
import 'package:flutter/cupertino.dart';