【问题标题】:Curved navigation bar in flutter颤动中的弯曲导航栏
【发布时间】:2020-11-23 05:07:42
【问题描述】:

目前,我在flutter https://pub.dev/packages/curved_navigation_bar 中有一个库,并且已经在我的项目中实现了它,但问题是当您在项目上导航时,所选项目的图标颜色不会改变。是否可以动态更改所选项目的图标颜色?

这是默认的:

这就是我需要的:

谢谢!

【问题讨论】:

    标签: flutter dart


    【解决方案1】:

    我认为这应该可行。

    class HomeBottomNavigationBar extends StatefulWidget {
    
    @override
    _HomeBottomNavigationBarState createState() =>_HomeBottomNavigationBarState();
    }
    
    
    class _HomeBottomNavigationBarState extends State<HomeBottomNavigationBar> 
    {
    
    int pressedButtonNo = 0;
    
     @override
     Widget build(BuildContext context) {
       return CurvedNavigationBar(
       
       items: <Widget>[
        Icon(Icons.add, size: 30, color: (pressedButtonNo = 0)? Colors.Green : Colors.Black,),
        Icon(Icons.list, size: 30, color: (pressedButtonNo = 1)? Colors.Green : Colors.Black,),
        Icon(Icons.compare_arrows, size: 30, color: (pressedButtonNo = 2)? Colors.Green : Colors.Black,),
      ],
      onTap: (index) {
        setState () {
         pressedButtonNo = index;
        }
      },
    );
    }}
    

    我没有测试过。希望它有效! 快乐编码:)

    【讨论】:

    • 哈,这么简单的解决方案))非常感谢,但是海拔呢?))
    • 我认为它没有海拔属性,但总有办法做某事。我认为您可以通过在主体末尾添加一个容器(就在弯曲导航栏下方)并为其添加 BoxShadow 属性来间接实现它。
    • 您使用可更改图标颜色的答案是正确的,但您需要使用 statefull 小部件,而不是使用无状态小部件!))
    • boxShadow 的解决方案无法正常工作。似乎需要创建自定义阴影路径,因此库变得无用。我会尝试创建一个自定义库))我还不能关闭这个问题,很遗憾。((
    【解决方案2】:

    即使迟到了,我也找到了办法:

    return Scaffold(
      body: Stack(
        children: [
          _tabItems[_activePage],
          Align(
            alignment: Alignment.bottomCenter,
            child: CurvedNavigationBar(//your stuff),
          )
        ],
      ),
    );
    

    【讨论】:

      猜你喜欢
      • 2021-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-15
      • 2022-06-12
      • 1970-01-01
      • 1970-01-01
      • 2022-01-25
      相关资源
      最近更新 更多