flutter - Flutter中如何自定义开关让圆圈相对变小?
问题描述
这是必需的开关 必需/预期的开关
我正在使用颤振的 Switch 小部件来执行此操作,但我无法更接近所需的开关。使用 Transform 来增加交换机的大小但会增加整个交换机的大小。关于如何匹配给定图像的任何想法?这就是我所在的地方: 我所在的地方
解决方案
小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;
}
}
它将使用适用于 iOS的buildMaterialSwitch
方法。Android
buildCupertinoSwitch
检查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
小部件:),只是不要忘记添加导入:
import 'package:flutter/cupertino.dart';
推荐阅读
- camera - 图像包无法上传到 Axis 虚拟实验室中的借用相机
- ruby - 重用功能文件 - Ruby 版本
- azure - Azure B2B 多租户应用程序外部用户登录问题
- r - 根据 2 列的值将值与数据框匹配
- python - 我不明白为什么 Beautiful Soup 给出第一个链接而不是第二个,第一个 select_one 不会像第二个那样工作
- python-3.x - 将基于字符串的日期列表更改为一种特定格式
- r - 分割函数并将其应用于单个列表
- javascript - 如何使用 workbox-build generateSW 为缓存添加过期时间?
- raspbian - 如何在我的 pi4,buster 上正确启动脚本
- mysql - 当日期有差距时,mySQL 更新最近 5 个日期的平均数量