我已经使用容器创建了底部导航栏 这是它的代码
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter_svg/flutter_svg.dart';
import 'package:installement1_app/screens/Dashboard.dart';
import 'package:installement1_app/screens/customersScreen.dart';
import 'package:installement1_app/theme/Colors.dart';
class bottomNavBar extends StatefulWidget {
const bottomNavBar({super.key});
@override
State<bottomNavBar> createState() => _bottomNavBarState();
}
class _bottomNavBarState extends State<bottomNavBar> {
@override
Widget build(BuildContext context) {
bool isHomeScreen = false;
bool isCustomersScreen = false;
Size size = MediaQuery.of(context).size;
return Padding(
padding: EdgeInsets.only(
left: size.width * 0.04,
right: size.width * 0.06,
bottom: size.width * 0.06),
child: Container(
decoration: BoxDecoration(
color: Colors.white, borderRadius: BorderRadius.circular(27)),
height: size.height * 0.07,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
Container(
decoration:
BoxDecoration(shape: BoxShape.circle, color: primaryBlue),
child: IconButton(
onPressed: () {},
icon: Icon(
Icons.add_rounded,
color: Colors.white,
size: size.width * 0.08,
)),
),
IconButton(
onPressed: () {
if (!isHomeScreen) {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => DashboardScreen()));
}
},
icon: SvgPicture.asset('assets/images/homeIcon.svg'),
),
IconButton(
onPressed: () {
Navigator.push(context,
MaterialPageRoute(builder: (context) => CustomersScreen()));
},
icon: SvgPicture.asset('assets/images/usersIcon.svg'),
),
IconButton(
onPressed: () {},
icon: SvgPicture.asset('assets/images/qrCodeIcon.svg'),
),
IconButton(
onPressed: () {},
icon: SvgPicture.asset('assets/images/walletIcon.svg'),
),
IconButton(
onPressed: () {},
icon: SvgPicture.asset('assets/images/settingsicon.svg'),
),
],
),
),
);
}
}
现在我已经将这个小部件传递给了BottomNavBar
bottomNavigationBar: const bottomNavBar(),
现在导航功能正常工作,我可以在不同的页面之间导航, 但当我在页面上时,我们可以说CustomerPage: 应该发生的是,当我点击导航到我已经在页面上的按钮时,导航器不应该导航,因为我已经在该按钮所指向的页面上 但在我的例子中,当我在CustomerPage上并点击指向CustomersPage的图标按钮时,导航器会再次导航到同一页面,这意味着我可以看到导航动画 在BottomAppBar中,我们可以使用索引和BottomNavBar项来控制这一点,但如果我使用一个容器创建了一个底部导航栏,那怎么可能呢?