您可以创建StatefulWidget 并使用GestureDetector
class MyCustomButton extends StatefulWidget {
@override
_MyCustomButtonState createState() => _MyCustomButtonState();
}
class _MyCustomButtonState extends State<MyCustomButton> {
bool _isPressed = false;
@override
Widget build(BuildContext context) {
return GestureDetector(
onTapDown: (TapDownDetails details) {
setState(() {
_isPressed = true;
});
},
onTapUp: (TapUpDetails details) {
setState(() {
_isPressed = false;
});
},
child: Container(
padding: EdgeInsets.all(20.0),
decoration: BoxDecoration(
color: Colors.blue,
border: _isPressed
? Border(bottom: BorderSide(color: Colors.grey, width: 10.0))
: null,
),
child: Text("title button")),
);
}
}