0

我有一个用 Flutter 制作的钢琴项目,想添加一个开关,以便在单击时更改 panot 的声音字体。

这是原始代码

 class PianoSection extends StatefulWidget {
  PianoSection({
  Key key,
  this.controller,
  this.disableScroll = false,
  this.showLabels = true,
  this.labelsOnlyOctaves = false,
  this.feedback = false,
  this.keyWidth = _kDefaultKeyWidth,
  this.soundFontPath ,
  this.isPiano,
  }) : super(key: key) 

{
  if (isPiano == false) {
   sound_FontPath = 'assets/sounds/Guitar Acoustic.sf2';} 
  else {
    sound_FontPath = 'assets/sounds/Piano.sf2'; 
  }
}



final ScrollController controller;
final bool disableScroll, labelsOnlyOctaves, showLabels, feedback, isPiano;
final double keyWidth;
final String soundFontPath;

@override
 _PianoSectionState createState() => _PianoSectionState();
}

在设置文件中:

ListTile(
              title: Text("Guitar"),
              trailing: Switch(
                  value: state.settings.isPiano,
                  onChanged: (bool value) {
                    BlocProvider.of<SettingsBloc>(context).add(
                        ChangeSettings(state.settings..isPiano = value));
                    
                  })), 

在 changegSetting 文件中:

 import 'package:meta/meta.dart';

 import 'settings.dart';

 @immutable
abstract class SettingsEvent {}

class ChangeSettings extends SettingsEvent {
  ChangeSettings(this.settings);

 final Settings settings;
 }

class CheckSettings extends SettingsEvent {}

你能告诉我如何添加这个功能吗?添加此功能之前的原始代码可以在这里找到:

4

0 回答 0