Я пытаюсь внести изменения в Tabview с исчезанием/исчезанием в анимации, например, WhatsApp.
class MyCupertinoAppHomePage extends StatefulWidget {
MyCupertinoAppHomePage({super.key});
final List _tabViews = [
CupertinoTabView(
builder: (context) => const HomePage(),
),
CupertinoTabView(
builder: (context) => const ChatBotPage(),
),
CupertinoTabView(
builder: (context) => const Center(child: Text('Settings'),),
)
];
@override
State createState() => _MyCupertinoAppHomePageState();
}
class _MyCupertinoAppHomePageState extends State {
int _selectedIndex = 0;
void _onTabChanged(int index) {
setState(() {
_selectedIndex = index;
});
}
_bottomTabBar() {
return CupertinoTabBar(
currentIndex: _selectedIndex,
onTap: _onTabChanged,
activeColor: CupertinoColors.activeBlue,
items: const [
BottomNavigationBarItem(
icon: Icon(
CupertinoIcons.arrow_up_arrow_down_circle_fill
),
label: 'Exchange'
),
BottomNavigationBarItem(
icon: Icon(
CupertinoIcons.bubble_left_bubble_right_fill
),
label: 'Chat'
),
BottomNavigationBarItem(
icon: Icon(
CupertinoIcons.settings
),
label: 'Settings'
),
],
);
}
@override
Widget build(BuildContext context) {
return CupertinoPageScaffold(
child: CupertinoTabScaffold(
tabBar: _bottomTabBar(),
tabBuilder: (BuildContext context, int index) {
return AnimatedSwitcher(
duration: const Duration(microseconds: 400),
child: widget._tabViews[index],
);
},
),
);
}
}
< /code>
Тем не менее, предоставленный код не будет делать никакой анимации и будет просто переключать вкладки, как это обычно бывает (без какой -либо анимации).
В таблице отладчика нет никаких сообщений об ошибках. анимация может работать?) < /p>
class MyCupertinoAppHomePage extends StatefulWidget {
MyCupertinoAppHomePage({super.key});
final List _tabViews = [
Container(
key: const ValueKey(0),
child: const HomePage(),
),
Container(
key: const ValueKey(1),
child: const CHatBotPage(),
),
Container(
key: const ValueKey(2),
child: const Center(
child: Text('Settings'),
),
)
];
@override
State createState() => _MyCupertinoAppHomePageState();
}
class _MyCupertinoAppHomePageState extends State {
int _selectedIndex = 0;
void _onTabChanged(int index) {
setState(() {
_selectedIndex = index;
});
}
_tabBarView() {
return AnimatedSwitcher(
duration: const Duration(milliseconds: 500),
child: widget._tabViews[_selectedIndex]);
}
_bottomTabBar() {
return CupertinoTabBar(
currentIndex: _selectedIndex,
onTap: _onTabChanged,
activeColor: CupertinoColors.activeBlue,
items: const [
BottomNavigationBarItem(
icon: Icon(CupertinoIcons.arrow_up_arrow_down_circle_fill),
label: 'Exchange'),
BottomNavigationBarItem(
icon: Icon(CupertinoIcons.bubble_left_bubble_right_fill),
label: 'Chat'),
BottomNavigationBarItem(
icon: Icon(CupertinoIcons.settings), label: 'Settings'),
],
);
}
@override
Widget build(BuildContext context) {
return CupertinoPageScaffold(
child: CupertinoTabScaffold(
tabBar: _bottomTabBar(),
tabBuilder: (BuildContext context, int index) {
return CupertinoPageScaffold(
child: _tabBarView(),
);
},
),
);
}
}
< /code>
Кроме того, во втором варианте, дерево виджетов инспектора флаттера показывает три разных купертинопадж -карфолд с каждым своим собственным анимированным и собственным страницами в виджете. Дерево после каждой вкладки было открыто один раз.>
Подробнее здесь: https://stackoverflow.com/questions/795 ... -animation
Флаттер Изменить Купертинотабвью с анимацией ⇐ IOS
Программируем под IOS
-
Anonymous
1743442292
Anonymous
Я пытаюсь внести изменения в Tabview с исчезанием/исчезанием в анимации, например, WhatsApp.
class MyCupertinoAppHomePage extends StatefulWidget {
MyCupertinoAppHomePage({super.key});
final List _tabViews = [
CupertinoTabView(
builder: (context) => const HomePage(),
),
CupertinoTabView(
builder: (context) => const ChatBotPage(),
),
CupertinoTabView(
builder: (context) => const Center(child: Text('Settings'),),
)
];
@override
State createState() => _MyCupertinoAppHomePageState();
}
class _MyCupertinoAppHomePageState extends State {
int _selectedIndex = 0;
void _onTabChanged(int index) {
setState(() {
_selectedIndex = index;
});
}
_bottomTabBar() {
return CupertinoTabBar(
currentIndex: _selectedIndex,
onTap: _onTabChanged,
activeColor: CupertinoColors.activeBlue,
items: const [
BottomNavigationBarItem(
icon: Icon(
CupertinoIcons.arrow_up_arrow_down_circle_fill
),
label: 'Exchange'
),
BottomNavigationBarItem(
icon: Icon(
CupertinoIcons.bubble_left_bubble_right_fill
),
label: 'Chat'
),
BottomNavigationBarItem(
icon: Icon(
CupertinoIcons.settings
),
label: 'Settings'
),
],
);
}
@override
Widget build(BuildContext context) {
return CupertinoPageScaffold(
child: CupertinoTabScaffold(
tabBar: _bottomTabBar(),
tabBuilder: (BuildContext context, int index) {
return AnimatedSwitcher(
duration: const Duration(microseconds: 400),
child: widget._tabViews[index],
);
},
),
);
}
}
< /code>
Тем не менее, предоставленный код не будет делать никакой анимации и будет просто переключать вкладки, как это обычно бывает (без какой -либо анимации).
В таблице отладчика нет никаких сообщений об ошибках. анимация может работать?) < /p>
class MyCupertinoAppHomePage extends StatefulWidget {
MyCupertinoAppHomePage({super.key});
final List _tabViews = [
Container(
key: const ValueKey(0),
child: const HomePage(),
),
Container(
key: const ValueKey(1),
child: const CHatBotPage(),
),
Container(
key: const ValueKey(2),
child: const Center(
child: Text('Settings'),
),
)
];
@override
State createState() => _MyCupertinoAppHomePageState();
}
class _MyCupertinoAppHomePageState extends State {
int _selectedIndex = 0;
void _onTabChanged(int index) {
setState(() {
_selectedIndex = index;
});
}
_tabBarView() {
return AnimatedSwitcher(
duration: const Duration(milliseconds: 500),
child: widget._tabViews[_selectedIndex]);
}
_bottomTabBar() {
return CupertinoTabBar(
currentIndex: _selectedIndex,
onTap: _onTabChanged,
activeColor: CupertinoColors.activeBlue,
items: const [
BottomNavigationBarItem(
icon: Icon(CupertinoIcons.arrow_up_arrow_down_circle_fill),
label: 'Exchange'),
BottomNavigationBarItem(
icon: Icon(CupertinoIcons.bubble_left_bubble_right_fill),
label: 'Chat'),
BottomNavigationBarItem(
icon: Icon(CupertinoIcons.settings), label: 'Settings'),
],
);
}
@override
Widget build(BuildContext context) {
return CupertinoPageScaffold(
child: CupertinoTabScaffold(
tabBar: _bottomTabBar(),
tabBuilder: (BuildContext context, int index) {
return CupertinoPageScaffold(
child: _tabBarView(),
);
},
),
);
}
}
< /code>
Кроме того, во втором варианте, дерево виджетов инспектора флаттера показывает три разных купертинопадж -карфолд с каждым своим собственным анимированным и собственным страницами в виджете. Дерево после каждой вкладки было открыто один раз.>
Подробнее здесь: [url]https://stackoverflow.com/questions/79546894/flutter-change-cupertinotabview-with-animation[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия