Browse Source

修改设备设置

weicu
tanlongsheng 11 months ago
parent
commit
5c9db7e1df
  1. 45
      lib/modules/eq_settings/controllers/eq_settings_controller.dart
  2. 76
      lib/modules/eq_settings/views/widgets/row_equalizer_widget.dart
  3. 58
      lib/modules/eq_settings/views/widgets/select_equalizer_widget.dart

45
lib/modules/eq_settings/controllers/eq_settings_controller.dart

@ -4,6 +4,7 @@ import 'package:get/get.dart';
import '../../../core/utils/logger.dart';
import '../../../routes/app_routes.dart';
import '../views/widgets/row_confirm_widget.dart';
import '../views/widgets/row_equalizer_widget.dart';
import '../views/widgets/row_grade_widget.dart';
import '../views/widgets/row_input_widget.dart';
import '../views/widgets/row_keypress_widget.dart';
@ -15,7 +16,48 @@ class EqSettingsController extends GetxController {
final RxList uiList = [
{
'title': '音效',
'templates': [],
'templates': [
{
'type': 'equalizer',
'name': '均衡器',
'value': [],
'options': [
{
'label': '默认',
'value': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
'default': true,
},
{
'label': '流行',
'value': [11, 12, 13, 14, 15, 16, 17, 18, 19, 20],
'default': true,
},
{
'label': '摇滚',
'value': [21, 22, 23, 24, 25, 26, 27, 28, 29, 30],
'default': true,
},
{
'label': '爵士',
'value': [31, 32, 33, 34, 35, 36, 37, 38, 39, 40],
'default': true,
},
{
'label': '经典',
'value': [31, 32, 33, 34, 35, 36, 37, 38, 39, 40],
'default': true,
},
{
'label': '乡村',
'value': [31, 32, 33, 34, 35, 36, 37, 38, 39, 40],
'default': true,
},
],
'onCallback': (List value) {
Logger.d('equalizer', '均衡器:$value');
},
}
],
},
{
'title': '按键功能',
@ -135,6 +177,7 @@ class EqSettingsController extends GetxController {
Widget getTemplate(Map data) {
return switch (data['type']) {
'equalizer' => RowEqualizerWidget(data),
'keypress' => RowKeypressWidget(data),
'input' => RowInputWidget(data),
'radio' => RowRadioWidget(data),

76
lib/modules/eq_settings/views/widgets/row_equalizer_widget.dart

@ -0,0 +1,76 @@
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'select_equalizer_widget.dart';
class RowEqualizerWidget extends StatefulWidget {
final Map templateData;
const RowEqualizerWidget(this.templateData, {super.key});
@override
State<RowEqualizerWidget> createState() => _RowEqualizerWidgetState();
}
class _RowEqualizerWidgetState extends State<RowEqualizerWidget> {
Map get _templateData => widget.templateData;
String _label = '';
@override
void initState() {
super.initState();
_label = _templateData['options'].firstWhere(
(option) => option['value'] == _templateData['value'],
orElse: () => {'label': ''},
)['label'];
}
@override
Widget build(BuildContext context) {
final isDarkMode = Theme.of(context).brightness == Brightness.dark;
return GestureDetector(
onTap: () async {
var result = await Get.to(() => SelectEqualizerWidget(_templateData));
if (result != null) {
setState(() {
_label = result['label'];
});
_templateData['value'] = result['value'];
_templateData['onCallback'](result['value']);
}
},
behavior: HitTestBehavior.translucent,
child: Padding(
padding: EdgeInsets.fromLTRB(10.w, 10.w, 0, 10.w),
child: Row(
children: [
Expanded(
child: Text(
_templateData['name'],
style: TextStyle(
fontSize: 14.sp,
color: isDarkMode ? Colors.white : Colors.black,
),
),
),
Text(
_label,
style: TextStyle(
fontSize: 12.sp,
color: isDarkMode ? Colors.white : Colors.grey,
),
),
Icon(
Icons.chevron_right,
size: 26.w,
color: Colors.blue,
),
],
),
),
);
}
}

58
lib/modules/eq_settings/views/widgets/select_equalizer_widget.dart

@ -0,0 +1,58 @@
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
class SelectEqualizerWidget extends StatefulWidget {
final Map templateData;
const SelectEqualizerWidget(this.templateData, {super.key});
@override
State<SelectEqualizerWidget> createState() => _SelectEqualizerWidgetState();
}
class _SelectEqualizerWidgetState extends State<SelectEqualizerWidget> {
Map get _templateData => widget.templateData;
@override
Widget build(BuildContext context) {
final isDarkMode = Theme.of(context).brightness == Brightness.dark;
return Scaffold(
backgroundColor: isDarkMode ? Colors.black : Colors.grey[50],
appBar: _buildAppBar(isDarkMode),
body: _buildBody(isDarkMode),
);
}
// 构建应用栏
PreferredSizeWidget _buildAppBar(bool isDarkMode) {
return AppBar(
backgroundColor: isDarkMode ? Colors.black : Colors.white,
surfaceTintColor: Colors.transparent,
elevation: 0.5,
leading: IconButton(
icon: Icon(
Icons.arrow_back_ios,
color: isDarkMode ? Colors.white : Colors.black,
size: 20.sp,
),
onPressed: () => Get.back(),
),
title: Text(
_templateData['name'],
style: TextStyle(
fontSize: 17.sp,
fontWeight: FontWeight.w600,
color: isDarkMode ? Colors.white : Colors.black,
),
),
centerTitle: true,
);
}
// 构建主体内容
Widget _buildBody(bool isDarkMode) {
return Container();
}
}
Loading…
Cancel
Save