Flutter TextButton + ButtonStyle使用
Widget _itemText(String txt, {Function()? onPress}) { //需要使用SizedBox限制TextButton高度 return SizedBox( height: 20, width: 44, child: TextButton( onPressed: onPress, style: ButtonStyle( padding: MaterialStateProperty.all(EdgeInsets.zero), //这个style设置的color不生效,要设置foregroundColor textStyle: MaterialStateProperty.all(const TextStyle( color: Colors.white, fontSize: 12, )), //取消圆角边框 shape: MaterialStateProperty.all( const RoundedRectangleBorder(borderRadius: BorderRadius.zero)), foregroundColor: MaterialStateProperty.all(Colors.white), backgroundColor: MaterialStateProperty.resolveWith((state) { if (state.contains(MaterialState.pressed)) { //背景颜色按下时 return Colors.white.withOpacity(0.1); } return null; }), //水波纹效果 overlayColor: MaterialStateProperty.all(Colors.white.withOpacity(0.1))), child: Text( txt, ), ), ); }