如何设计此底部导航栏

问题描述 投票:0回答:2

Screenshot

有任何可用的依赖性可以轻松设计此底部导航栏?

flutter flutter-layout frontend flutter-dependencies bottom-navigation-bar
2个回答
2
投票

import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; void main() { runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({Key? key}) : super(key: key); // This widget is the root of your application. @override Widget build(BuildContext context) { return MaterialApp( title: 'Flutter Demo', theme: ThemeData( primarySwatch: Colors.blue, ), home: const MyHomePage(title: 'Flutter Demo Home Page'), ); } } class MyHomePage extends StatefulWidget { const MyHomePage({Key? key, required this.title}) : super(key: key); final String title; @override State<MyHomePage> createState() => _MyHomePageState(); } class _MyHomePageState extends State<MyHomePage> { @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text(widget.title), ), body: Stack( children: [ Column( mainAxisAlignment: MainAxisAlignment.end, crossAxisAlignment: CrossAxisAlignment.stretch, children: [ Row( crossAxisAlignment: CrossAxisAlignment.end, children: [ Expanded( flex: 3, child: Container( height: 80.0, decoration: BoxDecoration( color: Colors.pink, borderRadius: BorderRadius.only( topLeft: Radius.circular( 30.0, ), topRight: Radius.circular( 15.0, ), ), ), ), ), Expanded( flex: 2, child: Container( height: 60.0, decoration: BoxDecoration( color: Colors.pink, ), ), ), Expanded( flex: 3, child: Container( height: 80.0, decoration: BoxDecoration( color: Colors.pink, borderRadius: BorderRadius.only( topLeft: Radius.circular( 15.0, ), topRight: Radius.circular( 30.0, ), ), ), ), ), ], ), ], ), Padding( padding: EdgeInsets.only( bottom: 15.0, ), child: Align( alignment: Alignment.bottomCenter, child: Container( height: 90.0, width: 90.0, decoration: BoxDecoration( color: Colors.black, borderRadius: BorderRadius.circular( 45.0, ), ), ), ), ), Padding( padding: EdgeInsets.only( bottom: 25.0, ), child: Align( alignment: Alignment.bottomCenter, child: Container( height: 70.0, width: 70.0, decoration: BoxDecoration( color: Colors.pink, borderRadius: BorderRadius.circular( 35.0, ), ), ), ), ), Padding( padding: EdgeInsets.only( bottom: 30.0, ), child: Align( alignment: Alignment.bottomCenter, child: Container( height: 60.0, width: 60.0, decoration: BoxDecoration( color: Colors.black, borderRadius: BorderRadius.circular( 30.0, ), ), child: Icon( CupertinoIcons.home, color: Colors.pink, ), ), ), ), ], ), ); } }

enter image description here 这是如何做的一个例子。如果要实现订单和通知按钮以及其他按钮,则可以将ROW()中的第一个容器分为两个容器,并且通过边距播放一点,您可以很快实现此设计。

记住还有其他成千上万种方法,这仅取决于您对Flutter Widget的了解程度。 this帮助

检查包 Animated_bottom_navigation_bar

Curved_navigation_bar


0
投票
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.