gpt4 book ai didi

flutter - flutter 中引发Text()小部件中的迭代列表抛出错误:RangeError(索引):无效值:有效值范围为空:0

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

我想将用户提供的两个输入之间的所有自然数显示到“文本”小部件中,但出现上述错误。这是我的代码片段:

List<int> naturalNumber = [];  <------Initialization of natural number(in the state class)

onPressed:(){
setState(() {

int X = int.parse(valueOfX.text);
int Y = int.parse(valueOfY.text);
difference = Y-X;
if(X>0 && Y>0 && Y-X>1 &&Y-X<50){

for(var i=0;i<=difference;i++){
naturalNumber[i] = X;
X=X+1;
}
for(int j=0;j<=naturalNumber.length;j++)
{
print(naturalNumber[j]);
}
shouldDisplay = !shouldDisplay;

}
}
}

在这里,我要打印用户输入之间的所有自然数:

shouldDisplay?Column(
children: [
for ( var i in naturalNumber ) Text(i.toString())
],
):Spacer()

最佳答案

尝试使用以下代码:

import 'package:flutter/material.dart';

void main() =>
runApp(MaterialApp(home: CounterDemo()));

class CounterDemo extends StatefulWidget {
@override
_CounterDemoState createState() => _CounterDemoState();
}

class _CounterDemoState extends State<CounterDemo> {
var shouldDisplay = false;
int x = 20;
int y = 19;

@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text("Counter Demo"),
),
body: SingleChildScrollView(
child: Column(
children: [
RaisedButton(
child: const Text("Show Values"),
onPressed:()=>setState(() {
shouldDisplay = !shouldDisplay;
}),
),
shouldDisplay
? ListView.builder(
shrinkWrap: true,
itemCount: (x - y).abs() + 1,
itemBuilder: (BuildContext ctxt, int index) {
var highestValue =x>y?x:y;
var lowestValue =x<y?x:y;

// in ascending form from 1 to 10
return Center(child: Text((lowestValue + index).abs().toString()));

// in descending form from 10 to 1
// return Center(child: Text((highestValue - index).abs().toString()));
})
: Container(),
],
),
),
);
}
}

这对我有用。 :)

关于flutter - flutter 中引发Text()小部件中的迭代列表抛出错误:RangeError(索引):无效值:有效值范围为空:0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62277781/

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