summaryrefslogtreecommitdiffstats
path: root/lib/presentation/screens/media_player/segmented_buttons.dart
blob: e649be3ac5bb87cacf2c8443a6908994b63e7f3e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
import 'package:flutter_ics_homescreen/export.dart';

class SegmentedButtons extends StatefulWidget {
  const SegmentedButtons(
      {super.key, required this.navItems, required this.selectedNav});

  final List<String> navItems;
  final String selectedNav;
  @override
  State<SegmentedButtons> createState() => _SegmentedButtonsState();
}

class _SegmentedButtonsState extends State<SegmentedButtons> {
  late List<String> navItems;
  late String selectedNav;

  @override
  void initState() {
    navItems = widget.navItems;
    selectedNav = widget.selectedNav;
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return Row(
      mainAxisAlignment: MainAxisAlignment.center,
      children: [
        Container(
          margin: const EdgeInsets.only(top: 40),
          padding: const EdgeInsets.all(3),
          decoration: BoxDecoration(
            boxShadow: [
              BoxShadow(
                  offset: const Offset(0, 4),
                  blurRadius: 4,
                  color: Colors.black.withOpacity(0.25))
            ],
            borderRadius: BorderRadius.circular(40),
            color: AGLDemoColors.buttonFillEnabledColor,
            border: Border.all(color: Colors.white12),
          ),
          child: Row(
            children: navItems
                .map((e) => Container(
                      padding: const EdgeInsets.symmetric(
                          vertical: 24, horizontal: 32),
                      decoration: BoxDecoration(
                        borderRadius: selectedNav == e
                            ? BorderRadius.circular(40)
                            : BorderRadius.zero,
                        color: selectedNav == e
                            ? AGLDemoColors.backgroundInsetColor
                            : null,
                      ),
                      child: InkWell(
                        borderRadius: BorderRadius.circular(40),
                        onTap: () {
                          setState(() {
                            selectedNav = e;
                          });
                        },
                        child: Text(
                          e,
                          style: TextStyle(
                              color: selectedNav == e
                                  ? Colors.white
                                  : AGLDemoColors.periwinkleColor,
                              fontSize: 26,
                              fontWeight: selectedNav == e
                                  ? FontWeight.w700
                                  : FontWeight.w500),
                        ),
                      ),
                    ))
                .toList(),
          ),
        ),
      ],
    );
  }
}