【问题标题】:How to use floating bottom navigation bar in Flutter如何在Flutter中使用浮动底部导航栏
【发布时间】:2023-02-11 05:22:04
【问题描述】:

我正在尝试使用这个名为 Dot navigation bar (https://pub.dev/packages/dot_navigation_bar) 的插件,我已经将该插件安装到我当前的项目中,但我只是想知道如何通过我现有的屏幕。

我有 Home()、Calender()、Help()、Schedule() 屏幕,所以只是想知道如何在单击图标时打开这些页面。任何帮助或建议将不胜感激。

这是文档中的示例代码。


class Home extends StatefulWidget {
  @override
  _HomeState createState() => _HomeState();
}

class _HomeState extends State<Home> {
  var _selectedTab = _SelectedTab.home;

  void _handleIndexChanged(int i) {
    setState(() {
      _selectedTab = _SelectedTab.values[i];
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      extendBody: true,
      body: Container(
        child: Image.asset("lib/img/1.png"),
      ),
      bottomNavigationBar: Padding(
        padding: EdgeInsets.only(bottom: 10),
        child: DotNavigationBar(
          margin: EdgeInsets.only(left: 10, right: 10),
          currentIndex: _SelectedTab.values.indexOf(_selectedTab),
          dotIndicatorColor: Colors.white,
          unselectedItemColor: Colors.grey[300],
          // enableFloatingNavBar: false,
          onTap: _handleIndexChanged,
          items: [
            /// Home
            DotNavigationBarItem(
              icon: Icon(Icons.home),
              selectedColor: Color(0xff73544C),
            ),

            /// Likes
            DotNavigationBarItem(
              icon: Icon(Icons.favorite),
              selectedColor: Color(0xff73544C),
            ),

            /// Search
            DotNavigationBarItem(
              icon: Icon(Icons.search),
              selectedColor: Color(0xff73544C),
            ),

            /// Profile
            DotNavigationBarItem(
              icon: Icon(Icons.person),
              selectedColor: Color(0xff73544C),
            ),
          ],
        ),
      ),
    );
  }
}

enum _SelectedTab { home, favorite, search, person }

现在它只是这样显示。

【问题讨论】:

    标签: flutter dart flutter-layout dart-pub flutter-bottomnavigation


    【解决方案1】:

    body 中传递navigation 项的数组。

    此外,您需要添加 .index,因为 _selectedTab 不是 int 值。

    navigation=[home(), favorite(), search(), person()]
    body: navigation[_selectedTab.index]
    

    【讨论】:

      猜你喜欢
      • 2022-10-05
      • 2021-04-18
      • 1970-01-01
      • 2023-02-25
      • 2023-01-17
      • 2022-01-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多