Я думаю, вам нужно добавить небольшой контекст в свой код, поскольку существует множество способов реализовать PageView и индикатор. Я думаю, вы используете TabBarView в качестве родительского элемента для PageView, потому что по умолчанию у PageView нет индикатора, у TabBarView есть.
предполагая, что я прав, вам действительно не нужно использовать TabBarView, если вы не хотите использовать разные вкладки, и каждая вкладка имеет разные PageView или другие виджеты. Судя по вашему пользовательскому интерфейсу, я думаю, что PageView с контроллером может удовлетворить ваши потребности в пользовательском интерфейсе.
Class XYZ extends StatefullWidget{
.......
}
Class _XYZ extends State<XYZ>
with SingleTickerProviderStateMixin{
PageController _pageController;
int pageNumber = 0;
void initState() {
super.initState();
_pageController = PageController();
}
..................
//inside build PageView
PageView(
controller: _pageController,
onPageChanged: (pageIndex) {
setState(() {
pageNumber = pageIndex;
});
},
children: <Widget>[
Notes(), // scaffold or widget or other class
Wochenplan(), scaffold or widget or other class
ETC(), // scaffold or widget or other class
],
),
..................
//inside build bottom nav icons
Row(
children: <Widget>[
buildTabButton(int currentIndex, int pageNumber, String image),
buildTabButton2....,
buildTabButton3...,
],
)
.......
buildTabButton1........
buildTabButton2(int currentIndex, int pageNumber, String image) {
return AnimatedContainer(
height: _height,
width: currentIndex == pageNumber ? 100 : 30,
padding: EdgeInsets.all(10),
duration: Duration(milliseconds: 300),
decoration: BoxDecoration(),// use currentIndex == pageNumber to decorate current widget and others
child: ../*ClickableWidget*/, //onClckWochenplan() // and so on
);
}
buildTabButton3........
........................
//onPressed or onTap functions which you can implement inside widgets as well..
void ABC() {
_pageController.animateToPage(0,
duration: Duration(milliseconds: 500), curve: Curves.decelerate);
}
void onClckWochenplan() {
_pageController.animateToPage(1,
duration: Duration(milliseconds: 500), curve: Curves.decelerate);
}
void DEF() {
_pageController.animateToPage(2,
duration: Duration(milliseconds: 500), curve: Curves.decelerate);
}
Надеюсь, это поможет ... еще предоставьте код, чтобы получить помощь от сообщества ... ура
person
MEHEDI HASAN
schedule
18.12.2019