Flutter中使用list_tile_switch如何单独修改开关按钮的形状与尺寸
解决方法
更换开关类型
你当前代码中指定了switchType: SwitchType.cupertino,该类型是iOS风格的默认椭圆开关,先将参数修改为switchType: SwitchType.material,查看默认材质风格的开关是否符合需求。源码修改不生效的问题
修改第三方依赖包的源码后,Flutter的热重载、热重启都不会加载修改后的代码,需要完全停止当前运行的项目,重新执行flutter run全量编译,修改才会生效。自定义矩形开关(无需修改第三方源码方案)
如果切换为material风格后还是需要完全直角的矩形开关,可以在外层包裹Theme组件覆盖默认开关样式,代码示例如下:
Theme( data: ThemeData( switchTheme: SwitchThemeData( // 圆角设为0就是完全矩形,可自行调整数值调整圆角大小 shape: RoundedRectangleBorder(borderRadius: BorderRadius.zero), trackShape: RoundedRectangleBorder(borderRadius: BorderRadius.zero), ), ), child: ListTileSwitch( value: _value, leading: Icon(Ionicons.moon), onChanged: (value) { setState(() { _value = value; }); }, visualDensity: VisualDensity.comfortable, switchType: SwitchType.material, switchActiveColor: Colors.indigo, title: Text('Dark theme'), ), )
- 直接修改包源码的方案
找到list_tile_switch包中Switch组件的构建位置,给Switch组件添加对应的shape、trackShape参数即可,修改后记得全量重启项目生效。
内容的提问来源于stack exchange,提问作者user15369973
相关产品推荐
相关产品推荐

