Files
wushu/lib/controllers/settings/suggestions.dart
2026-04-02 22:30:49 +08:00

179 lines
5.7 KiB
Dart

import 'package:flutter/material.dart';
import 'package:get/get.dart';
import '../../constants/app_constants.dart';
import '../../services/get/theme_controller.dart';
import '../../views/profile/theme/app-diy.dart';
import '../../views/footprint/collect_notes.dart';
import '../../views/profile/app-info.dart';
class SuggestionsCard extends StatefulWidget {
const SuggestionsCard({super.key});
@override
State<SuggestionsCard> createState() => _SuggestionsCardState();
}
class _SuggestionsCardState extends State<SuggestionsCard> {
final ThemeController _themeController = Get.find<ThemeController>();
bool _showAlternativeContent = false;
@override
Widget build(BuildContext context) {
final isDark = _themeController.isDarkMode;
return Container(
padding: const EdgeInsets.all(20),
decoration: BoxDecoration(
color: isDark ? const Color(0xFF2A2A2A) : Colors.white,
borderRadius: BorderRadius.circular(16),
boxShadow: [
BoxShadow(
color: Colors.black.withValues(alpha: isDark ? 0.3 : 0.05),
blurRadius: 10,
offset: const Offset(0, 2),
),
],
),
child: Column(
children: [
GestureDetector(
onTap: () {
setState(() {
_showAlternativeContent = !_showAlternativeContent;
});
},
child: Row(
children: [
Icon(
Icons.settings_suggest,
size: 40,
color: AppConstants.primaryColor,
),
const SizedBox(width: 16),
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'设置建议',
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.bold,
color: isDark ? Colors.white : Colors.black,
),
),
const SizedBox(height: 4),
Text(
_showAlternativeContent ? '是否在找,清理数据' : '是否在找,主题风格',
style: TextStyle(
fontSize: 13,
color: isDark ? Colors.grey[400] : Colors.grey[600],
),
),
],
),
),
Icon(Icons.refresh, color: AppConstants.primaryColor),
],
),
),
const SizedBox(height: 16),
_showAlternativeContent
? Row(
children: [
Expanded(
child: _buildActionButton(
'清理数据',
'管理应用数据',
Icons.delete_sweep,
Colors.red,
() => Get.toNamed('/app-data-guide'),
),
),
const SizedBox(width: 12),
Expanded(
child: _buildActionButton(
'了解软件',
'查看应用信息',
Icons.info,
Colors.purple,
() => Get.to(() => const AppInfoPage()),
),
),
],
)
: Row(
children: [
Expanded(
child: _buildActionButton(
'主题风格',
'自定义应用主题',
Icons.palette,
Colors.blue,
() => Get.to(() => const AppDiyPage()),
),
),
const SizedBox(width: 12),
Expanded(
child: _buildActionButton(
'创建笔记',
'快速创建新笔记',
Icons.note_add,
Colors.green,
() => Get.to(() => const CollectNotesPage()),
),
),
],
),
],
),
);
}
Widget _buildActionButton(
String title,
String subtitle,
IconData icon,
Color color,
VoidCallback onTap,
) {
final isDark = _themeController.isDarkMode;
return InkWell(
onTap: onTap,
borderRadius: BorderRadius.circular(8),
child: Container(
padding: const EdgeInsets.all(12),
decoration: BoxDecoration(
color: color.withValues(alpha: 0.1),
borderRadius: BorderRadius.circular(8),
border: Border.all(color: color.withValues(alpha: 0.2), width: 1),
),
child: Column(
children: [
Icon(icon, color: color, size: 24),
const SizedBox(height: 4),
Text(
title,
style: TextStyle(
fontSize: 13,
fontWeight: FontWeight.bold,
color: isDark ? Colors.white : Colors.black,
),
),
const SizedBox(height: 2),
Text(
subtitle,
style: TextStyle(
fontSize: 11,
color: isDark ? Colors.grey[400] : Colors.grey[600],
),
textAlign: TextAlign.center,
),
],
),
),
);
}
}