Я новичок в флаттере, я пытаюсь сделать навигатор из listTile в ящике в класс, но получаю 3 ошибки индекса.
"Неопределенное имя "индекс"
«Значения в литерале списка const должны быть постоянными».
«Недопустимое постоянное значение».
ListTile(
leading: Icon(Icons.people),
title: Text('Associati'),
onTap: () {
Navigator.push(context, MaterialPageRoute(builder: (context) => AssociatiPage(index)));
}
),
это класс
import 'package:flutter/material.dart';
import 'package:flutter_application_orsa/pages/NavBar.dart';
class AssociatiPage extends StatefulWidget {
const AssociatiPage(index, {super.key});
@override
State<AssociatiPage> createState() => _AssociatiPageState();
}
class _AssociatiPageState extends State<AssociatiPage> {
@override
Widget build(BuildContext context) {
return Scaffold(
drawer: const NavBar(),
appBar: AppBar(
backgroundColor: const Color.fromARGB(255, 241, 160, 29),
leading: Builder(builder: (context) {
return IconButton(
onPressed: () {
Scaffold.of(context).openDrawer();
},
icon: const Icon(
Icons.menu,
),
);
}),
),
body: const ListTile(
title: Text('primo'),
onTap: null,
)
);
}
}
я попробую
Navigator.push(context, MaterialPageRoute(builder: (context) => AssociatiPage(index)));
Удалите const
перед ListTile
, ontap произойдет во время выполнения.
body: ListTile(
title: Text('primo'),
onTap: (){...},
)
И я предполагаю, что index
будет исходить из ListView.builder, того, что вы пытаетесь сделать. Или укажите 0
to 2
вместо index
.
вам нужно объявить переменную как index
, иначе указать жестко запрограммированное значение
остается ошибка undefined name 'index', если я удаляю const, но другие решаются