|
import 'package:flutter/material.dart'; |
|
|
|
void main() { |
|
runApp(const MyApp()); |
|
} |
|
|
|
class MyApp extends StatefulWidget { |
|
const MyApp({Key? key}) : super(key: key); |
|
|
|
@override |
|
State<MyApp> createState() => _MyAppState(); |
|
} |
|
|
|
class _MyAppState extends State<MyApp> with TickerProviderStateMixin { |
|
late TabController _tabController; |
|
|
|
@override |
|
void initState() { |
|
super.initState(); |
|
_tabController = TabController(length: 4, vsync: this); |
|
} |
|
|
|
@override |
|
Widget build(BuildContext context) { |
|
return MaterialApp( |
|
home: Scaffold( |
|
bottomNavigationBar: DefaultTabController( |
|
length: 4, |
|
initialIndex: 0, |
|
child: Container( |
|
margin: const EdgeInsets.only(bottom: .5), |
|
padding: const EdgeInsets.only(top: 3), |
|
height: 50, |
|
decoration: BoxDecoration( |
|
// color: Theme.of(context).backgroundColor, |
|
color: Colors.white, |
|
border: Border.all( |
|
color: Colors.grey[700]!, |
|
width: 0.5, |
|
), |
|
borderRadius: const BorderRadius.only( |
|
topRight: Radius.circular(17), |
|
topLeft: Radius.circular(17), |
|
), |
|
), |
|
child: TabBar( |
|
physics: const NeverScrollableScrollPhysics(), |
|
isScrollable: false, |
|
|
|
controller: _tabController, |
|
indicatorWeight: 0, |
|
// mouseCursor: MouseCursor.defer, |
|
indicator: const UnderlineTabIndicator( |
|
borderSide: BorderSide( |
|
color: Colors.black, |
|
width: 1, |
|
), |
|
// insets: EdgeInsets.symmetric(horizontal: 0), |
|
), |
|
tabs: [ |
|
kTabBarItemConstructor( |
|
Icons.home, |
|
'Home', |
|
), |
|
Container( |
|
child: kTabBarItemConstructor( |
|
Icons.home, |
|
'Home', |
|
), |
|
), |
|
Container( |
|
child: kTabBarItemConstructor( |
|
Icons.home, |
|
'Profile', |
|
), |
|
), |
|
// Tab( |
|
// child: Container( |
|
// child: Column( |
|
// mainAxisAlignment: MainAxisAlignment.center, |
|
// children: [ |
|
// |
|
// Text( |
|
// 'Корзина', |
|
// style: TextStyle( |
|
// fontSize: 9, |
|
// color: Colors.grey[600], |
|
// ), |
|
// ), |
|
// ], |
|
// ), |
|
// ), |
|
// ), |
|
kTabBarItemConstructor( |
|
Icons.home, |
|
'Profile', |
|
), |
|
], |
|
), |
|
), |
|
), |
|
)); |
|
} |
|
} |
|
Widget kTabBarItemConstructor(IconData icon, String text) { |
|
return Tab( |
|
child: Container( |
|
height: 40, |
|
width: 70, |
|
child: Column( |
|
mainAxisAlignment: MainAxisAlignment.center, |
|
children: [ |
|
Icon( |
|
icon, |
|
color: Colors.black.withOpacity(.65), |
|
size: 25, |
|
), |
|
Container( |
|
// margin: EdgeInsets.symmetric(horizontal: 10), |
|
child: Text( |
|
text, |
|
style: TextStyle( |
|
fontSize: 9, |
|
color: Colors.grey[600], |
|
), |
|
maxLines: 1, |
|
overflow: TextOverflow.ellipsis, |
|
), |
|
), |
|
], |
|
), |
|
), |
|
); |
|
} |