【问题标题】:Call ListView for a RaisedButton为 RaisedButton 调用 ListView
【发布时间】:2021-03-07 18:07:54
【问题描述】:

我的 Flutter 代码有问题。 我想将 ListView _aAntwort() 作为 RaisedButton 中的文本调用。 在模拟中显示错误:“堆栈溢出”。 谁能帮帮我?

感谢您的大力支持:)

                    RaisedButton(                              //StatefulWidget
                    onPressed: () {},
                    child: _aAntwort(),                      //ERROR  
                    ),
                              

Widget randAnswer() {
var list = <String>['aAnswer', 'bAnswer', 'cAnswer', 'dAnswer'];

var rand = new Random();

int i = rand.nextInt(list.length);
iAnswer = list[i];

list.removeAt(i);

int ii = rand.nextInt(list.length);
iiAnswer = list[ii];

list.removeAt(ii);

int iii = rand.nextInt(list.length);
iiiAnswer = list[iii];

list.removeAt(iii);

int iiii = rand.nextInt(list.length);
iiiiAnswer = list[iiii];

list.removeAt(iiii);

return randAnswer();  }


 ListView _aAntwort() {
if (iAnswer == "aAnswer") {
  return aAnswer();
} else if (iAnswer == "bAnswer") {
  return bAnswer();
} else if (iAnswer == "cAnswer") {
  return cAnswer();
} else if (iAnswer == "dAnswer") {
  return dAnswer();
}
return _aAntwort();  }                                    // I want to call this one


ListView aAnswer() {
return ListView.builder(
   {.....
   

【问题讨论】:

  • 你遇到了什么错误?
  • 请再次尝试解释问题。

标签: android ios flutter listview dart


【解决方案1】:

在 _aAntwort() 中,您默认返回 _aAntwort()。这将导致无休止的递归调用。您需要返回类似 aAnswer 或 noAnswer 的内容

ListView _aAntwort() {
  if (iAnswer == "aAnswer") {
    return aAnswer();}
  else if (iAnswer == "bAnswer") {
    return bAnswer();} 
  else if (iAnswer == "cAnswer") {
    return cAnswer();} 
  else if (iAnswer == "dAnswer") {
    return dAnswer();}
  return _noAnswer();  
}      

【讨论】:

  • 感谢您的帮助,但我不明白您的意思。你能改进我的代码吗?
  • 谢谢,我现在明白了。但是我现在如何在 RaisedButton 中将 _aAntwort() 显示为文本?
  • 不知道你的意思。 aAntwort 返回一个要在按钮中显示的小部件。如果要输出文本,返回 Text(“what ever”);
  • 是的,我想显示小部件 aAnswer 但模拟中的按钮是空的。
  • 你有系统地测试过吗?我会确保任何随机随机结果调用 aAnswer。然后在 aAnswer 中我只会返回一个简单的 Text 小部件。如果这不起作用,请将 aAnswer 调用替换为 Text 小部件。让它尽可能简单,直到它起作用,然后逐步添加复杂性
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-12-04
  • 1970-01-01
  • 2022-11-18
  • 2017-03-19
  • 2021-11-05
  • 1970-01-01
  • 2021-08-16
相关资源
最近更新 更多