Files
tm_app/lib/views/shared/main_tab_bar.dart
T
2025-09-16 08:36:03 +03:30

60 lines
1.8 KiB
Dart

import 'package:flutter/material.dart';
import '../../core/theme/colors.dart';
import '../../core/utils/size_config.dart';
class MainTabBar extends StatefulWidget {
const MainTabBar({required this.controller, required this.titles, super.key});
final TabController controller;
final List<String> titles;
@override
State<MainTabBar> createState() => _MainTabBarState();
}
class _MainTabBarState extends State<MainTabBar> {
@override
Widget build(BuildContext context) {
return Container(
width: double.infinity,
height: 51.0.h(),
margin: EdgeInsets.symmetric(horizontal: 24.0.w()),
padding: EdgeInsets.symmetric(horizontal: 8.0.w(), vertical: 8.0.h()),
decoration: BoxDecoration(
color: AppColors.grey10,
borderRadius: BorderRadius.circular(10),
),
alignment: Alignment.center,
child: TabBar(
indicatorSize: TabBarIndicatorSize.tab,
dividerColor: Colors.transparent,
indicator: BoxDecoration(
color: AppColors.primary0,
borderRadius: BorderRadius.circular(10),
boxShadow: [
BoxShadow(
color: Colors.black.withValues(alpha: 0.12),
blurRadius: 4,
offset: const Offset(0, 2),
),
],
),
controller: widget.controller,
labelColor: AppColors.mainBlue,
unselectedLabelColor: AppColors.grey60,
labelStyle: TextStyle(fontSize: 16.0.sp(), fontWeight: FontWeight.w600),
unselectedLabelStyle: TextStyle(
fontSize: 16.0.sp(),
fontWeight: FontWeight.w600,
),
tabs: [
Tab(text: widget.titles[0]),
Tab(text: widget.titles[1]),
Tab(text: widget.titles[2]),
],
),
);
}
}