Implemented the page view functionality

-synced page controllers
This commit is contained in:
Mohammad Salameh
2024-03-07 12:57:35 +03:00
parent c5f88caec3
commit bf275d5adf
7 changed files with 185 additions and 71 deletions
+37 -22
View File
@@ -209,44 +209,59 @@ class SpacesCubit extends Cubit<SpacesState> {
PageController devicesPageController = PageController();
ScrollController roomsScrollController = ScrollController();
PageController roomsPageController = PageController();
int selectedRoomIndex = 0;
var duration = const Duration(milliseconds: 300);
selectSpace(SpaceModel space) {
selectedSpace = space;
emit(SpacesSelected(space));
}
updateSelectedRoomIndex(int index) {
selectedRoomIndex = index;
emit(RoomSelected(selectedSpace.rooms.elementAt(index)));
roomSliderPageChanged(int index) {
devicesPageController.animateToPage(
index,
duration: duration,
curve: Curves.linear,
);
if (index == 0) {
unselectRoom();
} else {
selectedRoom = selectedSpace.rooms[index - 1];
print(selectedRoom!.name);
}
emit(RoomSelected(selectedRoom!));
}
selectRoom(RoomModel room) {
selectedRoom = room;
selectedRoomIndex = selectedSpace.rooms.indexOf(room) + 1;
print(selectedRoomIndex);
devicesPageController.animateToPage(
selectedRoomIndex,
devicesPageChanged(int index) {
roomsPageController.animateToPage(
index,
duration: const Duration(milliseconds: 300),
curve: Curves.easeInOut,
curve: Curves.linear,
);
// roomsScrollController.animateTo(
// roomsScrollController.positions.elementAt(selectedRoomIndex).pixels,
// duration: const Duration(milliseconds: 300),
// curve: Curves.easeInOut,
// );
emit(RoomSelected(room));
if (index == 0) {
unselectRoom();
} else {
selectedRoom = selectedSpace.rooms[index - 1];
print(selectedRoom!.name);
}
emit(RoomSelected(selectedRoom!));
}
unselectRoom() {
selectedRoom = null;
selectedRoomIndex = 0;
devicesPageController.animateToPage(
selectedRoomIndex,
duration: const Duration(milliseconds: 300),
curve: Curves.easeInOut,
0,
duration: duration,
curve: Curves.linear,
);
roomsPageController.animateToPage(
0,
duration: duration,
curve: Curves.linear,
);
emit(RoomUnSelected());