Files
food_hub_app/lib/widgets/common/index.dart
2025-07-11 14:00:58 +08:00

75 lines
1.9 KiB
Dart

import 'package:flutter/material.dart';
// import 'package:fluttertoast/fluttertoast.dart';
Widget formLabelText({required String labelText, bool isRequired = false}) {
return Text.rich(
TextSpan(
children: [
if (isRequired)
const TextSpan(text: '* ', style: TextStyle(color: Colors.red)),
TextSpan(text: labelText),
],
),
);
}
InputDecoration formInputDecoration({
required String hintText, // 使用命名参数并标记为必填
IconData? prefixIcon,
}) {
return InputDecoration(
hintText: hintText,
hintStyle: TextStyle(color: Colors.grey),
filled: true,
fillColor: Colors.white,
border: OutlineInputBorder(),
prefixIcon: prefixIcon != null ? Icon(prefixIcon) : null,
);
}
ButtonStyle primaryButtonStyle() {
return ButtonStyle(
backgroundColor: WidgetStateProperty.all(Colors.green),
shape: WidgetStateProperty.all(
RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)),
),
);
}
ButtonStyle cancelButtonStyle() {
return ButtonStyle(
backgroundColor: WidgetStateProperty.all(Colors.grey),
shape: WidgetStateProperty.all(
RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)),
),
);
}
Text buttonText({required String text}) {
return Text(text, style: TextStyle(color: Colors.white));
}
// void showSuccessToast(String message) {
// Fluttertoast.showToast(
// msg: message,
// toastLength: Toast.LENGTH_SHORT,
// gravity: ToastGravity.CENTER,
// timeInSecForIosWeb: 1,
// backgroundColor: Colors.green,
// textColor: Colors.white,
// fontSize: 16.0,
// );
// }
//
// void showErrorToast(String message) {
// Fluttertoast.showToast(
// msg: message,
// toastLength: Toast.LENGTH_SHORT,
// gravity: ToastGravity.CENTER,
// timeInSecForIosWeb: 1,
// backgroundColor: Colors.red,
// textColor: Colors.white,
// fontSize: 16.0,
// );
// }