summaryrefslogtreecommitdiffstats
path: root/lib/widgets/Right_climate.dart
blob: d47a6595e9873811dbfee5e3882c9df7148639a8 (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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
// SPDX-License-Identifier: Apache-2.0


import 'dart:io';

import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:scrollable_positioned_list/scrollable_positioned_list.dart';
import 'package:flutter_hvac/kuksa-server/vehicle_methods.dart';
import 'package:flutter_hvac/provider.dart';
import 'package:flutter_hvac/size.dart';

class ScrollContainerRight extends ConsumerWidget {
  WebSocket socket;
  ScrollContainerRight({Key? key, required this.socket}) : super(key: key);

  List<int> mylist = [
    16,
    17,
    18,
    19,
    20,
    21,
    22,
    23,
    24,
    25,
    26,
    27,
    28,
    29,
    30,
    31,
    32,
  ];


  final ItemScrollController itemScrollController = ItemScrollController();
  final ItemPositionsListener itemPositionsListener =
      ItemPositionsListener.create();

  @override
  Widget build(BuildContext context, ref) {
    int val = ref.watch(RightSlider).toInt();

    VISS.set(socket,ref, 'Vehicle.Cabin.HVAC.Station.Row1.Right.Temperature',
        mylist[val].toString());
    VISS.set(socket, ref,'Vehicle.Cabin.HVAC.Station.Row2.Right.Temperature',
        mylist[val].toString());

    if (itemScrollController.isAttached) {
      itemScrollController.scrollTo(
          index: val.toInt()+2,
          duration: Duration(milliseconds: 500),
          curve: Curves.easeInOutCubic,
          alignment: 1);
    }


    return SingleChildScrollView(
      child: SizedBox(
        height: SizeConfig.screenHeight*0.30,
        width: SizeConfig.screenWidth*0.25,
        child: AnimatedContainer(
          // color: Colors.red,
          duration: Duration(milliseconds: 300),
          decoration: BoxDecoration(
            border: Border.all(
              color: Colors.white,
              width: 2,
            ),
            borderRadius: BorderRadius.circular(12),
          ),
          child: ScrollablePositionedList.builder(
            physics: NeverScrollableScrollPhysics(),
              scrollDirection: Axis.vertical,
              itemCount: mylist.length,
              itemScrollController: itemScrollController,
              itemPositionsListener: itemPositionsListener,
              itemBuilder: (context, index) {
                return Container(
                  decoration: BoxDecoration(

                    gradient: index == val
                        ? RadialGradient(
                            colors: [Colors.white54, Colors.black], radius: SizeConfig.safeBlockVertical*0.7)
                        : null,
                  ),
                  child: ListTile(
                    subtitle: Center(
                      child: Text(
                        '' + mylist[index].toString() + '°',
                        style: index == val ? TextStyle(
                          color: Colors.lightBlueAccent,
                          fontWeight: FontWeight.w700,
                          fontSize: SizeConfig.fontsize*4,
                        ):TextStyle(
                          color: Colors.white54,
                          fontWeight: FontWeight.w700,
                          fontSize: SizeConfig.fontsize*4,
                        ),
                      ),
                    ),

                    minVerticalPadding: 5,

                  ),
                );
              }),
        ),
      ),
    );
  }
}