flutter_input_library/lib/src/inputs/carousel/carousel_form.dart

35 lines
1.1 KiB
Dart
Raw Normal View History

2022-11-29 13:16:44 +01:00
// SPDX-FileCopyrightText: 2022 Iconica
//
// SPDX-License-Identifier: BSD-3-Clause
import 'package:flutter/material.dart';
2024-02-02 11:48:45 +01:00
import 'package:flutter_input_library/src/inputs/carousel/carousel_slider.dart';
2022-11-29 13:16:44 +01:00
class CarouselFormField extends FormField<int> {
CarouselFormField({
2024-02-02 11:48:45 +01:00
required FormFieldSetter<int> super.onSaved,
required FormFieldValidator<int> super.validator,
2022-11-29 13:16:44 +01:00
required List<Widget> items,
2024-02-02 11:48:45 +01:00
super.key,
void Function(int value)? onChanged,
int super.initialValue = 0,
2022-11-29 13:16:44 +01:00
double height = 425,
}) : super(
2024-02-02 11:48:45 +01:00
builder: (FormFieldState<int> state) => CarouselSlider(
options: CarouselOptions(
initialPage: initialValue,
onPageChanged: (index, reason) {
onChanged?.call(index);
2022-11-29 13:16:44 +01:00
2024-02-02 11:48:45 +01:00
state.didChange(index);
},
height: height,
aspectRatio: 2.0,
enlargeCenterPage: true,
enableInfiniteScroll: false,
),
items: items.map((Widget item) => item).toList(),
),
);
2022-11-29 13:16:44 +01:00
}