На моем экране spla sh я вызываю метод из своего класса модели (получаю некоторые данные из API и помещаю их в список). Он работает и генерирует список. Но я не могу отправить этот список в свой виджет listview. Вот соответствующий код;
Часть SplashScreen, которая вызывает метод класса модели (getFixtures)
class _SplashScreenState extends State<SplashScreen> {
List<Fixture> fixtureList = List<Fixture>();
FixtureData callFixtureData = FixtureData();
@override
void initState() {
super.initState();
SplashScreen.fixtureData = getFixture();
Timer(
Duration(seconds: 5),
() => Navigator.of(context).pushReplacement(
MaterialPageRoute(
builder: (BuildContext context) => WelcomeScreen(),
),
),
);
}
Future<List<Fixture>> getFixture() async {
fixtureList = await callFixtureData.getFixtures();
return fixtureList;
}
Часть класса модели; Я вижу, что список не является нулевым и правильным
class FixtureData extends ChangeNotifier {
List<Fixture> fixtures = List<Fixture>();
List<Fixture> bets = List<Fixture>();
//to show in FAB at HomeScreen
int get betCount {
return bets.length;
}
Future<List<Fixture>> getFixtures() async {
fixtures = await FootballApi.getFixtureData();
print(fixtures[0].homeTeam);
notifyListeners();
return fixtures;
}
Часть ListView. Я вызываю список с помощью final fixture = fixtureData.fixtures [index]; Но ничего не происходит. Что мне не хватает?
class FixtureList extends StatelessWidget {
final dateFormat = DateFormat('MMMd');
final timeFormat = DateFormat('Hm');
@override
Widget build(BuildContext context) {
return Consumer<FixtureData>(
builder: (context, fixtureData, child) {
return ListView.builder(
itemBuilder: (context, index) {
final fixture = fixtureData.fixtures[index];
return FixtureTile(
date: dateFormat.format(fixture.dateTime),
time: timeFormat.format(fixture.dateTime),
homeTeam: fixture.homeTeam,
awayTeam: fixture.awayTeam,
homeOdds: fixture.homeOdds,
drawOdds: fixture.drawOdds,
awayOdds: fixture.awayOdds,
isHomeSelected: fixture.homeSelected,
isDrawSelected: fixture.drawSelected,
isAwaySelected: fixture.awaySelected,
homeCallBack: () => fixtureData.updateSelection(fixture, 'home'),
drawCallBack: () => fixtureData.updateSelection(fixture, 'draw'),
awayCallBack: () => fixtureData.updateSelection(fixture, 'away'),
);
},
itemCount: fixtureData.fixtures.length,
);
},
);
}
}