gpt4 book ai didi

flutter - Flutter/Dart:窗口小部件中的文本根据哪个屏幕调用而变化?

转载 作者:行者123 更新时间:2023-12-03 04:20:27 25 4
gpt4 key购买 nike

我有一个有状态的小部件,可以记录音频。它在两个不同的屏幕上使用。我希望按钮上的文字基于调用它的屏幕。 IE:如果是从一个屏幕调用的文本为“记录”,但是如果是从另一屏幕调用的文本为“尝试”。
因此,我向其传递了一个带有调用它的屏幕名称的参数。然后,我尝试使用带条件的变量。但是该参数不可用,并带有红色下划线。 Android Studio告诉我“只能在初始化程序中访问静态成员”。
那么,如何访问“whichscreen”参数,以便可以在变量/条件中使用它?
这是代码:

class SpeakRecorder extends StatefulWidget {
final String whichscreen;

SpeakRecorder({
this.whichscreen
})

String screenchoice = (whichscreen == "recordscreen") ? "Record" : "Try it";
...
这是需要录制按钮文本选择的小部件;
 Widget _buildText(RecordingStatus status) {
var text = "";
switch (_currentStatus) {
case RecordingStatus.Initialized:
{
text = screenchoice;
break;
}
case RecordingStatus.Recording:
{
text = 'Pause';
break;
}
case RecordingStatus.Paused:
{
text = 'Resume';
break;
}
default:
break;
}
return Text(text, style: TextStyle(color: Colors.white));
}
我究竟做错了什么?我应该在其他地方声明此变量/条件吗?还是我应该采取更好的方法?

最佳答案

StateStatefulWidget是2个不同的类,但是您可以使用 StatefulWidget State中访问相应的State.widget:

class ExampleWidget extends StatefulWidget{
final String prop;
// ...
}

class ExampleState extends State<ExampleWidget>{
// here you can get the prop of the corresponding widget with widget.prop
Widget build(BuildContext context){
return Text(widget.prop);
}

//...
}

关于flutter - Flutter/Dart:窗口小部件中的文本根据哪个屏幕调用而变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62967554/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com