пробел в нижней вкладке навигации трепещет

#flutter #icons #flutter-dependencies #floating-action-button #react-navigation-bottom-tab

#трепетание #Значки #флаттер-зависимости #плавающая кнопка действия #реагировать-навигация-нижняя вкладка

Вопрос:

Как я могу добавить пространство одинаково, когда я использую логотип dart в качестве плавающей кнопки действия.Я хочу использовать эту плавающую кнопку действия в центре, чтобы между пятью из них было одинаковое пространство. Остальные 4 значка — это элемент нижней панели навигации. Может кто-нибудь, пожалуйста, помочь мне найти решение этой проблемы?

введите описание изображения здесь

Вот мой код:

   import 'package:convex_bottom_bar/convex_bottom_bar.dart';
    import 'package:eye_buddy/screen/homepage/pages/profile.dart';
    import 'package:eye_buddy/screen/homepage/pages/settings.dart';
    import 'package:flutter/material.dart';
    import 'chat.dart';
    import 'dashboard.dart';
    import 'package:eye_buddy/util/colorconfig.dart';

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

    class _HomeState extends State<Home> {
  

      int currentTab = 0; // to keep track of active tab index
      final List<Widget> screens = [
        Dashboard(),
        Chat(),
    Profile(),
        Settings(),
      ]; // to store nested tabs
      final PageStorageBucket bucket = PageStorageBucket();
      Widget currentScreen = Dashboard(); // Our first view in viewport

      @override
      Widget build(BuildContext context) {
        return Scaffold(
          body: PageStorage(
            child: currentScreen,
            bucket: bucket,
      ),
      floatingActionButton: GestureDetector(
        onTap: () {
          // Do Something
        },
        child: Container(
          decoration: BoxDecoration(
            image: DecorationImage(
              image: AssetImage('assets/icon/eye.png'),
            ),
            // borderRadius: BorderRadius.circular(0.50),
          ),
          width: 110,
          height: 94.68,
        ),
      ),
      //  FloatingActionButton(
      //   elevation: 0.0,
      //   child: Image.asset("assets/icon/eye.png"),
      //   backgroundColor: Colors.transparent,
      //   onPressed: () {},
      // ),
      floatingActionButtonLocation: FloatingActionButtonLocation.centerDocked,
      bottomNavigationBar: ConvexAppBar(
        backgroundColor: colorFromHex('#181D3D'),
        style: TabStyle.react,
        items: [
          TabItem(icon: Icons.search),
          TabItem(icon: Icons.bubble_chart),
          TabItem(icon: Icons.assessment),
          TabItem(icon: Icons.baby_changing_station),
        ],
        initialActiveIndex: 1 /*optional*/,
        onTap: (int i) => print('click index=$i'),
      ),
      
    );
      }
    }
 

Ответ №1:

Попробуйте дополнить свой логотип dart :

       Container(
          padding: EdgeInsets.fromLTRB(16, 16, 16, 16),
          decoration: BoxDecoration(
            image: DecorationImage(
              image: AssetImage('assets/icon/eye.png'),
            ),
            // borderRadius: BorderRadius.circular(0.50),
          ),
 

Если till не работает, то :

          return BottomAppBar(
                color: Colors.white,
                child: Container(
                  height: 64,
                  child: Row(
                    mainAxisAlignment: MainAxisAlignment.spaceAround,
                    children: [--your nav icons---],
                  ),
                ),
                shape: CircularNotchedRectangle(),
                clipBehavior: Clip.antiAlias,
                notchMargin: 5.0,
              );