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,
),
),
);
}