pp_kits 1.1.3
pp_kits: ^1.1.3 copied to clipboard
pp_kits is a rapid development application library for Flutter, containing essential technical points, practical triplet libraries, etc
example/lib/main.dart
import 'package:flutter/material.dart';
import 'pages/color_example_page.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'PP Kits Demo',
theme: ThemeData(
// This is the theme of your application.
//
// TRY THIS: Try running your application with "flutter run". You'll see
// the application has a purple toolbar. Then, without quitting the app,
// try changing the seedColor in the colorScheme below to Colors.green
// and then invoke "hot reload" (save your changes or press the "hot
// reload" button in a Flutter-supported IDE, or press "r" if you used
// the command line to start the app).
//
// Notice that the counter didn't reset back to zero; the application
// state is not lost during the reload. To reset the state, use hot
// restart instead.
//
// This works for code too, not just values: Most code changes can be
// tested with just a hot reload.
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
useMaterial3: true,
),
home: const ExamplesListPage(),
);
}
}
class ExamplesListPage extends StatelessWidget {
const ExamplesListPage({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Theme.of(context).colorScheme.inversePrimary,
title: const Text('PP Kits 示例'),
),
body: ListView(
children: [
_buildExampleTile(
context,
title: '颜色工具 (ColorExtension)',
subtitle: '展示HexColor和ColorExtension的使用方法',
icon: Icons.color_lens,
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => const ColorExamplePage()),
);
},
),
// 这里可以添加更多示例
],
),
);
}
Widget _buildExampleTile(
BuildContext context, {
required String title,
required String subtitle,
required IconData icon,
required VoidCallback onTap,
}) {
return Card(
margin: const EdgeInsets.symmetric(horizontal: 16, vertical: 8),
child: ListTile(
leading: Icon(icon, color: Theme.of(context).colorScheme.primary),
title: Text(title),
subtitle: Text(subtitle),
trailing: const Icon(Icons.chevron_right),
onTap: onTap,
),
);
}
}