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,
),
);
}),
),
),
);
}
}
|