Я использую tabcontroller, и он отображается правильно. Мне нужно динамически изменять текст вкладок.
Я пробовал искать решение в Google и SO, но пока не повезло.
Вот код.
TabController _controller;
@override
void initState(){
_controller = TabController(vsync: this, length: 4);
_controller.addListener(_handleTabSelection);
deviceInfo();
super.initState();
});
@override
void dispose() {
controller.dispose();
super.dispose();
}
TabBar(
// isScrollable: true,
controller: _controller,
unselectedLabelColor: Colors.redAccent,
indicatorSize: TabBarIndicatorSize.label,
indicator: BoxDecoration(
gradient: LinearGradient(
colors: [Colors.redAccent, Colors.orangeAccent]),
borderRadius: BorderRadius.circular(50),
color: Colors.redAccent),
tabs: [
Tab(
child: Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(50),
border: Border.all(color: Colors.redAccent, width: 1)),
child: Align(
alignment: Alignment.center,
child: Text("Near You",
style: TextStyle(
fontSize: 12
),
),
),
),
),
Tab(
child: Container(
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(50),
border: Border.all(color: Colors.redAccent, width: 1)),
child: Align(
alignment: Alignment.center,
child: Text("My State",
style: TextStyle(
fontSize: 12
),
),
),
),
),
body:TabBarView(
controller: _controller,
children: [
Text("TAB ONE CONTENT"),
Text("TAB TWO CONTENT"),
],
),
_handleTabSelection() {
_currentIndex = _controller.index;
print(_currentIndex);
setState(() {
switch (_currentIndex) {
case 0:
///Change the Tab Text
PrimaryColor= Color(0xffff5722);
SecColor= Color(0xff3f51b5);
break;
case 1:
PrimaryColor= Color(0xff3f51b5);
SecColor= Color(0xffff5722);
break;
Я добавил соответствующий код только в вопросе, иначе это было бы довольно долго.
Я хочу динамически изменить текст вкладки, как указано выше, вы можете увидеть Рядом с вами и Мои Состояние - это текст. Мне нужно это изменить. Любой совет.