有没有一种方法可以从列表中随机抽取随机元素?

时间:2020-05-13 22:05:56

标签: flutter dart

我想在打开页面后立即从列表中随机显示一个数字,而无需单击该数字来进行更改。尝试过在线检查,但没有运气找到任何可行的解决方案。

更新1:不一定必须是数字。另外,下面是我到目前为止的代码。仅当我单击文本时才会更改。每次我在应用程序中打开页面时,我仍然无法动态显示不同的“ randomQuote”

更新2:弄清楚了:)

  static List randomQuote = ['a', 'b', 'c', 'd','f'];

  Random random = new Random();
  var shuffleList = randomQuote.toList()..shuffle();
  int index = 0;

  void changeIndex() {

    setState(() => index = Random().nextInt(shuffleList.length));

  }


  @override
  Widget build(BuildContext context) {

    return Center(
      child: Column(
        children: <Widget>[
          Padding(
            padding:
                const EdgeInsets.only(bottom: 5, top: 5, left: 20, right: 20),
            child: Text(
              shuffleList[index].toString(),
              style: TextStyle(
                color: Colors.black87,
                fontFamily: 'Roboto-boldItalics',
                fontSize: 17,
                fontWeight: FontWeight.bold,
              ),
            ),
          ),
        ],
      ),
    );
  }
}

3 个答案:

答案 0 :(得分:1)

您可以在初始化状态下定义随机函数

void initState(){ int randomNumber=Random().nextInt(yourList.length) }

然后,您可以随意使用randomNumber。

答案 1 :(得分:0)

通过initState函数执行此操作:

var myList= [1,2,3,4,5];
myList.shuffle();

// Display `myList.first`

答案 2 :(得分:-1)

您可以尝试 shuffle(),它在 Flutter 中随 Lists 一起提供。 示例:

listObjects.shuffle();