Я создаю класс для нижней навигации, который я вызываю на нескольких страницах, поэтому я сделал его собственным файлом dart. У меня он работал нормально, когда я использовал обычную нижнюю панель навигации. Однако я хочу использовать изогнутый нижний навигационный пакет. Я следил за несколькими руководствами YouTube, и хотя я скопировал именно то, что они сделали, я не могу заставить свои переходить на другие страницы. Я не понимаю, как настроить навигацию, когда у каждого «значка» нет своего атрибута onTap. Я надеюсь, что эксперты по флаттеру в группе поймут, что я делаю неправильно.
`import 'package:curved_navigation_bar/curved_navigation_bar.dart';
import 'package:flutter/material.dart';
import 'package:oracle_project/Card_Flip/daily_card.dart';
import 'package:oracle_project/Dashboard/home_screen.dart';
import 'package:oracle_project/Oracle_Deck/deck.dart';
import 'package:oracle_project/Shopping/componants/body.dart';
class BottomNav extends StatefulWidget {
@override
_BottomNavState createState() => _BottomNavState();
}
class _BottomNavState extends State<BottomNav> {
Widget build(BuildContext context) {
final HomeScreen _homeScreen = HomeScreen();
final DailyCard _dailyCard = new DailyCard();
final Deck _deck = new Deck();
final Body _body = new Body();
Widget _showPage = new HomeScreen();
Widget _pageChooser(int page) {
switch (page) {
case 0:
return _homeScreen;
break;
case 1:
return _dailyCard;
break;
case 2:
return _deck;
break;
case 3:
return _body;
break;
default:
return Container(
child: Text("error page"),
);
}
}
return Scaffold(
bottomNavigationBar: CurvedNavigationBar(
color: Color(0xFFc9bbbe),
backgroundColor: Colors.white,
buttonBackgroundColor: Color(0xFFc9bbbe),
height: 75,
items: <Widget>[
Icon(
Icons.home,
size: 30,
color: Colors.black,
),
Icon(
Icons.change_history,
size: 30,
color: Colors.black,
),
Icon(
Icons.burst_mode,
size: 30,
color: Colors.black,
),
Icon(
Icons.shopping_basket,
size: 30,
color: Colors.black,
),
],
animationDuration: Duration(milliseconds: 200),
index: 0,
animationCurve: Curves.bounceInOut,
onTap: (int tappedIndex) {
setState(() {
_showPage = _pageChooser(tappedIndex);
});
}),
);
}
}
`
[1]: https://i.stack.imgur.com/N3dV4.png