feat:增加朋友圈表单功能

This commit is contained in:
2025-11-23 23:19:17 +08:00
parent 245edd9d27
commit 97e7a6f44b
10 changed files with 169 additions and 131 deletions

View File

@@ -4,7 +4,7 @@ import 'package:flutter/material.dart';
InputDecoration buildInputDecoration({
required BuildContext context,
required String hintText,
required IconData prefixIcon,
IconData? prefixIcon,
}) {
final colors = Theme.of(context).colorScheme;
@@ -27,7 +27,10 @@ InputDecoration buildInputDecoration({
),
contentPadding: const EdgeInsets.symmetric(horizontal: 15, vertical: 14),
errorStyle: const TextStyle(fontSize: 12, height: 1, color: Colors.red),
prefixIcon: Icon(prefixIcon, size: 20, color: Color(0xFF86909C)),
prefixIcon:
prefixIcon != null
? Icon(prefixIcon, size: 20, color: Color(0xFF86909C))
: null,
prefixIconConstraints: const BoxConstraints(minWidth: 40),
isDense: true,
);

View File

@@ -24,25 +24,36 @@ class RecipeCard extends StatelessWidget {
children: [
CommonImage(imageUrls: imageUrls, index: 0),
SizedBox(height: 8),
GestureDetector(
onTap: () => navigatorToRecipeDetail(context),
child: _buildRecipeContent(),
),
_buildRecipeContent(context),
],
),
);
}
Widget _buildRecipeContent() {
Widget _buildRecipeContent(BuildContext context) {
final colors = Theme.of(context).colorScheme;
return Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
recipe.name,
style: TextStyle(fontSize: 16, fontWeight: FontWeight.bold),
maxLines: 1,
overflow: TextOverflow.ellipsis,
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text(
recipe.name,
style: TextStyle(fontSize: 16, fontWeight: FontWeight.bold),
maxLines: 1,
overflow: TextOverflow.ellipsis,
),
InkWell(
onTap: () => navigatorToRecipeDetail(context),
child: Icon(
Icons.arrow_circle_right_sharp,
color: colors.secondary,
),
),
],
),
SizedBox(height: 5),
Row(
@@ -66,7 +77,7 @@ class RecipeCard extends StatelessWidget {
color: Color(0xFF20B2AA),
),
],
)
),
],
);
}

View File

@@ -1,54 +0,0 @@
import 'package:flutter/material.dart';
import 'package:flutter_common/widget/common_widget.dart';
class StatisticCard extends StatelessWidget {
final IconData icon;
final Color color;
final String title;
final num value;
final String unit;
const StatisticCard({
super.key,
required this.icon,
required this.color,
required this.title,
required this.value,
required this.unit,
});
@override
Widget build(BuildContext context) {
return CommonCard(
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
SizedBox(
width: 40,
height: 40,
child: Icon(icon, color: color, size: 40),
),
const SizedBox(width: 10),
Column(
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(title, style: TextStyle(fontSize: 20, color: color)),
const SizedBox(height: 4),
Row(
children: [
Text(
value.toString(),
style: TextStyle(fontSize: 20, color: color),
),
const SizedBox(width: 5),
Text(unit, style: TextStyle(fontSize: 20, color: color)),
],
),
],
),
],
),
);
}
}