【问题标题】:BottomBar items aren't align flutterBottomBar 项目未对齐颤动
【发布时间】:2023-03-10 01:02:02
【问题描述】:

我正在制作底部应用栏,但它的样式有问题。栏中的项目未居中和对齐。知道如何实现这种外观:https://cdn.dribbble.com/users/195056/screenshots/4029397/bottom_bar.png

这就是我所拥有的:

这是我正在使用的代码:

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:tariffo/Detail.dart';
import 'package:tariffo/favoriteProviders.dart';
import 'package:tariffo/messages_list.dart';
import 'package:bubble_bottom_bar/bubble_bottom_bar.dart';
import 'HomePage.dart';

class BarDetail extends StatefulWidget {
  @override
  _BarDetailState createState() => _BarDetailState();
}

class _BarDetailState extends State<BarDetail> {
  int currentIndex;
  @override
  void initState() {
    super.initState();
    currentIndex = 0;
  }

  changePage(int index) {
    setState(() {
      currentIndex = index;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Transform.translate(
        offset: Offset(0.0, -10),
        child: Container(
            height: 50,
            margin: EdgeInsets.only(left: 20, right: 20),
            child: ClipRRect(
                borderRadius: BorderRadius.all(
                  Radius.circular(80),
                ),
                child: BubbleBottomBar(
                    opacity: 0.2,
                    backgroundColor: Colors.white30,
                    borderRadius:
                        BorderRadius.vertical(top: Radius.circular(80.0)),
                    currentIndex: currentIndex,
                    hasInk: true,
                    inkColor: Colors.black12,
                    hasNotch: true,
                    fabLocation: BubbleBottomBarFabLocation.end,
                    onTap: (index) {
                      if (index == 1)
                        Navigator.push(
                          context,
                          MaterialPageRoute(
                              builder: (context) => FavoriteProviders()),
                        );
                      if (index == 2)
                        Navigator.push(
                          context,
                          MaterialPageRoute(builder: (context) => Searchbar()),
                        );
                      if (index == 3)
                        Navigator.push(
                          context,
                          MaterialPageRoute(
                              builder: (context) => MessageList()),
                        );
                    },
                    items: <BubbleBottomBarItem>[
                      BubbleBottomBarItem(
                          backgroundColor: Colors.red,
                          icon: Icon(
                            Icons.dashboard,
                            color: Colors.black,
                            size: 30,
                          ),
                          activeIcon: Icon(Icons.dashboard,
                              color: Colors.red, size: 30),
                          title: Text("Home")),
                      BubbleBottomBarItem(
                          backgroundColor: Colors.red,
                          icon: Icon(Icons.favorite_border,
                              color: Colors.black, size: 30),
                          activeIcon: Icon(
                            Icons.dashboard,
                            color: Colors.red,
                            size: 30,
                          ),
                          title: Text("Saved")),
                      BubbleBottomBarItem(
                          backgroundColor: Colors.red,
                          icon:
                              Icon(Icons.search, color: Colors.black, size: 30),
                          activeIcon: Icon(Icons.dashboard,
                              color: Colors.red, size: 30),
                          title: Text("Search")),
                      BubbleBottomBarItem(
                          backgroundColor: Colors.red,
                          icon: Icon(Icons.send, color: Colors.black, size: 30),
                          activeIcon: Icon(Icons.dashboard,
                              color: Colors.red, size: 30),
                          title: Text("Messages")),
                    ]))));
  }
}

我应该改变什么?

【问题讨论】:

  • fabLocation 将浮动操作按钮的位置设置到右侧。尝试删除它
  • @kingmort imgur.com/a/zkXKdh2 仍然没有在中间找到那些图标
  • @sanda17 是 iOS 模拟器?因为 king mort 解决方案在 Android 上适用于我。

标签: flutter bottombar


【解决方案1】:

用一列包裹你的 BubbleBar 并将对齐设置为中心 likr this

child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              children: [
                   BubbleBottomBar(..)
                        ])

【讨论】:

  • 为什么我的底部会溢出 32 个像素
  • @sanda17 尝试增加容器高度:Container(height: 50, [...])
  • imgur.com/a/fWRxbr8 如果我改变容器高度,我还是弄错了
猜你喜欢
  • 2021-01-28
  • 2021-05-30
  • 2020-06-10
  • 2022-11-22
  • 1970-01-01
  • 2010-12-15
  • 1970-01-01
  • 2018-06-06
  • 2020-12-06
相关资源
最近更新 更多