У меня есть список цитат (три цитаты), и я использую функцию карты для сопоставления списка цитат, чтобы создать небольшой виджет для каждой из них. Но кавычки не отображаются в приложении.
import 'package:flutter/material.dart';
void main() {
runApp(MaterialApp(
home: QuoteList(),
));
}
class QuoteList extends StatefulWidget {
const QuoteList({ Key? key }) : super(key: key);
@override
State<QuoteList> createState() => _QuoteListState();
}
class _QuoteListState extends State<QuoteList> {
List<String> quotes = [
"There are three constants in life.. change, choice and principles.",
"In three words I can sum up everything Ive learned about life: it goes on.",
"Guests, like fish, begin to smell after three days."
];
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Colors.grey[200],
appBar: AppBar(
title: Text('Awesome Quotes'),
centerTitle: true,
backgroundColor: Colors.redAccent,
),
body: Column(
children: quotes.map((e) => Text(e)).toList(),
),
);
}
}
ваш код работает для меня
Пробовал на DartPad - у меня работает.
@LukaCerrutti это сработало при переходе к методу сборки. Спасибо. Но немного смущает, почему это работает для других.
Возможно, они попробовали логику дротика только на пусковой площадке для дротиков или что-то в этом роде. Тот факт, где вы инициализируете свои переменные во флаттере, на самом деле matters
. Также я бы лично попробовал, работает ли использование объявления final
вне метода build
(поскольку это может быть лучшим решением, если оно работает).
Идеально работает на DartPad.
Попробуйте запустить "трепетать чистым", а затем "трепетать запустить"
попробуйте это вместо столбца
ListView.builder(
itemCount: 5,
itemBuilder: (BuildContext context,int index){
return Text(quotes[index]);
}
),
);
Переместите инициализацию переменной кавычек внутрь метода build
.
class _QuoteListState extends State<QuoteList> {
@override
Widget build(BuildContext context) {
var quotes = [
"There are three constants in life.. change, choice and principles.",
"In three words I can sum up everything Ive learned about life: it goes on.",
"Guests, like fish, begin to smell after three days."
];
return Scaffold(
backgroundColor: Colors.grey[200],
appBar: AppBar(
title: Text('Awesome Quotes'),
centerTitle: true,
backgroundColor: Colors.redAccent,
),
body: Column(
children: quotes.map((e) => Text(e)).toList(),
),
);
}
}
Также вы можете использовать вывод типов и использовать var
вместо уточнения List<String>
.
попробуйте переместить инициализацию
quotes
в методbuild
.