答案 0 :(得分:1)
这是您要找的吗?μ
您可以通过将 Switch
放在带有 Container
的 border
中来实现此目的:
import 'package:flutter/material.dart';
import 'package:flutter_hooks/flutter_hooks.dart';
void main() {
runApp(
MaterialApp(
debugShowCheckedModeBanner: false,
title: 'Flutter Demo',
home: HomePage(),
),
);
}
class HomePage extends HookWidget {
@override
Widget build(BuildContext context) {
final checked = useState(false);
return Scaffold(
body: Center(
child: Container(
padding: EdgeInsets.symmetric(horizontal: 8.0, vertical: 4.0),
decoration: BoxDecoration(
border: Border.all(
color: checked.value ? Colors.green : Colors.red, width: 2.0),
borderRadius: BorderRadius.circular(4.0),
),
child: Switch(
value: checked.value,
onChanged: (_) => checked.value = !checked.value),
),
),
);
}
}
答案 1 :(得分:0)
不能基于 Flutter 的默认按钮更改 Switch
按钮的边框。但是,您可以使用一个流行的包名称 flutter_switch 来创建带有自定义边框颜色的 Switch
按钮。您可以将其用作:
FlutterSwitch(
value: isSwitchOn,
activeSwitchBorder: Border.all(color: Colors.green),
inactiveSwitchBorder: Border.all(color: Colors.red),
activeColor: Colors.yellow,
onToggle: (value) {
setState(() {
isSwitchOn = value;
});
},
)