feat:增加common框架

This commit is contained in:
2025-11-23 20:28:45 +08:00
parent e38e26e685
commit f11b8d6a30
32 changed files with 280 additions and 1545 deletions

View File

@@ -1,9 +1,9 @@
import 'package:blog_app/models/blog.dart';
import 'package:blog_app/pages/blog_detail_page.dart';
import 'package:blog_app/pages/category_list_page.dart';
import 'package:blog_app/utils/date_utils.dart';
import 'package:blog_app/widget/common.dart';
import 'package:flutter/material.dart';
import 'package:flutter_common/utils/date_utils.dart';
import 'package:flutter_common/widget/common_widget.dart';
class BlogLabel {
final String text;
@@ -122,7 +122,7 @@ class BlogCard extends StatelessWidget {
Widget build(BuildContext context) {
final colors = Theme.of(context).colorScheme;
return BuildCard(
return CommonCard(
child: Column(
crossAxisAlignment: CrossAxisAlignment.center,
children: [
@@ -164,7 +164,7 @@ Widget buildCategoryTitle(BuildContext context, int count) {
Widget buildCategoryCard(BuildContext context, BlogCategory category) {
final colors = Theme.of(context).colorScheme;
return BuildCard(
return CommonCard(
child: ListTile(
leading: Container(
width: 50,
@@ -223,7 +223,7 @@ Widget buildListTitle(int count) {
Widget buildBlogListItem(BuildContext context, Blog blog, int index) {
final colors = Theme.of(context).colorScheme;
return BuildCard(
return CommonCard(
child: Padding(
padding: EdgeInsets.all(0),
child: Row(
@@ -259,73 +259,6 @@ Widget buildBlogListItem(BuildContext context, Blog blog, int index) {
);
}
Widget buildStatsCard({
required BuildContext context,
required IconData icon,
required String title,
required String count,
required String unit,
}) {
final colors = Theme.of(context).colorScheme;
return BuildCard(
child: Row(
children: [
Container(
padding: const EdgeInsets.all(12),
decoration: BoxDecoration(
color: colors.primary.withAlpha(50),
shape: BoxShape.circle,
),
child: Icon(icon, size: 26, color: colors.primary),
),
SizedBox(width: 6),
Expanded(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Text(
title,
style: TextStyle(
fontSize: 16,
color: Colors.grey.shade600,
fontWeight: FontWeight.w500,
),
),
const SizedBox(height: 6),
Row(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.end,
children: [
Text(
count,
style: TextStyle(
fontSize: 28,
fontWeight: FontWeight.bold,
color: colors.primary,
height: 1.0,
),
),
const SizedBox(width: 4),
Text(
unit,
style: TextStyle(
fontSize: 14,
color: Colors.grey.shade600,
fontWeight: FontWeight.w500,
),
),
],
),
],
),
),
],
),
);
}
void navigatorToBlogDetail(BuildContext context, int blogId) {
Navigator.push(
context,