如何做列表元素的随机生成器?

How to do random generator of elements of list?

我有清单:

    List quotes = [
        "Lmao this is text",
        "Okay okay go to next",
        "So, we are the champion nanana",
        "Gagagagaga",
        "What does the fox say?"
      ];

var _index = new Random();

我想从我的列表元素创建随机文本生成器。 我在 flutter 中使用 statefull,当我点击按钮时,我想要列表中的新随机元素。 我的代码示例:

 children: [
                Text(quotes[_index]),
    
                Center(
                  child: Container(
                      child: FlatButton.icon(
                          onPressed: _showFate(),
                          icon: Icon(Icons.casino),
                          label: Text("New words!", style: TextStyle(
                            color: Colors.white
                          ),)),
_showFate() {
    setState(() {
      _index.nextInt(5);
    });

为什么它不起作用我不明白...

_index 应该是 int 而不是 Random 并且您还应该将随机值重新分配给 setState

中的 _index

看看这个。


int _index = 0;

_showFate(){
  setState(() {
   _index = Random().nextInt(5);
  });
}

只需在文本小部件中使用 _index.nextInt(quotes.length) 并调用 setState 进行更新:

children: [
                Text(quotes[_index.nextInt(quotes.length)]),
    
                Center(
                  child: Container(
                      child: FlatButton.icon(
                          onPressed: _showFate(),
                          icon: Icon(Icons.casino),
                          label: Text("New words!", style: TextStyle(
                            color: Colors.white
                          ),)),
_showFate() {
    setState(() {});
}