大家好,我在使用底部导航栏小部件时遇到问题,我试图将导航器与页面分开,但我不断收到相同的错误,并且它没有引导我到我想要的页面。有人可以帮助我吗?
这是我的底部导航栏
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:curved_navigation_bar/curved_navigation_bar.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:google_nav_bar/google_nav_bar.dart';
import 'package:notify_ju/Screens/categories.dart';
import 'package:notify_ju/Screens/myReports.dart';
class BottomNavigationBarWidget extends StatefulWidget {
@override
State<BottomNavigationBarWidget> createState() =>
_BottomNavigationBarWidgetState();
}
class _BottomNavigationBarWidgetState extends State<BottomNavigationBarWidget> {
int currentIndex = 0;
void _nav(int index) {
setState(() {
currentIndex = index;
});
}
final screen = [Categories(), const MyReports()];
@override
Widget build(BuildContext context) {
return Scaffold(
body: screen[currentIndex],
bottomNavigationBar: GNav(
backgroundColor: const Color.fromARGB(255, 195, 235, 197),
activeColor: Color.fromARGB(255, 136, 135, 135),
color: Colors.white,
gap: 3,
selectedIndex: currentIndex,
onTabChange: _nav,
tabs: [
GButton(
icon: Icons.home,
text: 'Home',
),
GButton(
icon: Icons.notifications,
text: 'My Reports',
),
],
));
}
}
``
我认为发生这种情况是因为您正在使用 :-
return ListView.builder(
itemCount: snapshot.data!.length,
itemBuilder: (context, index) {
final items = snapshot.data!;
return Dismissible(
key: Key(index.toString()), <== index as key
background: Container(
改为使用:-
return ListView.builder(
itemCount: snapshot.data!.length,
itemBuilder: (context, index) {
final items = snapshot.data!;
return Dismissible(
key: UniqueKey(), <=== Use unique key
background: Container(