ListView 不更新
ListView not update
void gerarLista 在 var List listaNumeros 中输入了一些值。由于某种原因,当列表被写入时,屏幕没有更新。
当我在旅途中更改代码并保存列表时,重新设计了信息。
var sequencia = [];
var numeroInicialController = TextEditingController();
var dddController = TextEditingController();
var quantidadeController = TextEditingController();
void gerarLista(int numeroInicial, int ddd, int quantidade) {
print(numeroInicial.toString());
print(ddd.toString());
print(quantidade.toString());
for (var i = numeroInicial; i <= (numeroInicial + quantidade); i++) {
sequencia.add(i);
}
var cod = 1;
//listaNumeros.clear();
for (var numero in sequencia) {
listaNumeros.add(Numero(numero.toString(), ddd.toString(), cod.toString()));
cod++;
}
print(sequencia);
}
class _MessengerApp extends State<MessengerApp> {
@override
Widget build(BuildContext context) {
//var listaNumeros = new List<int>.generate(quantidade, (numeroInicial) => numeroInicial + 1);
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('JW Messenger'),
actions: <Widget>[
Padding(
padding: EdgeInsets.only(right: 20.0),
child: GestureDetector(
onTap: () {
_showDialog();
},
child: Icon(Icons.more_vert),
)),
],
),
body: (ListView(
children: <Widget>[
...listaNumeros,
],
)),
));
}```
您需要提供更多代码,以便我们了解发生了什么,目前我看不到您在哪里调用 setState()
。
您需要调用 setState()
才能在 Flutter 中触发重建。
此外,列表不在屏幕上更新是很常见的,当发生这种情况时,您需要使用 Keys,看看 Flutter 中的 Keys 以及它们如何用于识别新的和更新的小部件框架。
void gerarLista 在 var List listaNumeros 中输入了一些值。由于某种原因,当列表被写入时,屏幕没有更新。
当我在旅途中更改代码并保存列表时,重新设计了信息。
var sequencia = [];
var numeroInicialController = TextEditingController();
var dddController = TextEditingController();
var quantidadeController = TextEditingController();
void gerarLista(int numeroInicial, int ddd, int quantidade) {
print(numeroInicial.toString());
print(ddd.toString());
print(quantidade.toString());
for (var i = numeroInicial; i <= (numeroInicial + quantidade); i++) {
sequencia.add(i);
}
var cod = 1;
//listaNumeros.clear();
for (var numero in sequencia) {
listaNumeros.add(Numero(numero.toString(), ddd.toString(), cod.toString()));
cod++;
}
print(sequencia);
}
class _MessengerApp extends State<MessengerApp> {
@override
Widget build(BuildContext context) {
//var listaNumeros = new List<int>.generate(quantidade, (numeroInicial) => numeroInicial + 1);
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('JW Messenger'),
actions: <Widget>[
Padding(
padding: EdgeInsets.only(right: 20.0),
child: GestureDetector(
onTap: () {
_showDialog();
},
child: Icon(Icons.more_vert),
)),
],
),
body: (ListView(
children: <Widget>[
...listaNumeros,
],
)),
));
}```
您需要提供更多代码,以便我们了解发生了什么,目前我看不到您在哪里调用 setState()
。
您需要调用 setState()
才能在 Flutter 中触发重建。
此外,列表不在屏幕上更新是很常见的,当发生这种情况时,您需要使用 Keys,看看 Flutter 中的 Keys 以及它们如何用于识别新的和更新的小部件框架。