我在和Flutter一起工作当我使用NavigationBar更改图标时我希望选中的图标具有更大的尺寸,但将此更改制作成动画,类似于在BottonNavigationBar中发生的情况,但NavigationBar版本我未能实现此动画
8yoxcaq71#
可以使用AnimatedContainer,示例如下
AnimatedContainer( duration: Duration(milliseconds: 200), padding: EdgeInsets.all(10), decoration: BoxDecoration( border: Border( bottom: BorderSide( width: isSelected ? 2.0 : 0.0, color: Colors.blue, ), ), ), child: Icon( icons[index], size: isSelected ? selectedIconSize : unselectedIconSize, color: isSelected ? Colors.blue : Colors.black, ),
rqmkfv5c2#
BottomNavigationBar( currentIndex: model.currentIndex, enableFeedback: true, landscapeLayout: BottomNavigationBarLandscapeLayout.centered, elevation: 0, onTap: model.setIndex, items: [ BottomNavigationBarItem( label: 'Hem', activeIcon: Icon( Icons.home, color: CustomeColors.grey, size: 30.0, ), icon: Icon( Icons.home_outlined, size: 25.0, ), ),
wfveoks03#
AnimatedScale( scale: factor, duration: const Duration(seconds: 1), child: NavigationDestination( icon: Icon( Icons.home, // your icon ), label: '', ), )
只需使用setState或任何状态管理更新factor
factor
3条答案
按热度按时间8yoxcaq71#
可以使用AnimatedContainer,示例如下
rqmkfv5c2#
wfveoks03#
只需使用setState或任何状态管理更新
factor