mirror of
https://github.com/Iconica-Development/flutter_input_library.git
synced 2025-05-18 17:03:45 +02:00
44 lines
1.3 KiB
Dart
44 lines
1.3 KiB
Dart
// SPDX-FileCopyrightText: 2022 Iconica
|
|
//
|
|
// SPDX-License-Identifier: BSD-3-Clause
|
|
|
|
import 'package:flutter/material.dart';
|
|
import 'carousel_slider.dart';
|
|
|
|
class CarouselFormField extends FormField<int> {
|
|
CarouselFormField({
|
|
Key? key,
|
|
required FormFieldSetter<int> onSaved,
|
|
required FormFieldValidator<int> validator,
|
|
void Function(int value)? onChanged,
|
|
void Function(int value)? onSubmit,
|
|
int initialValue = 0,
|
|
bool autovalidate = false,
|
|
required List<Widget> items,
|
|
double height = 425,
|
|
}) : super(
|
|
key: key,
|
|
onSaved: onSaved,
|
|
validator: validator,
|
|
initialValue: initialValue,
|
|
builder: (FormFieldState<int> state) {
|
|
return CarouselSlider(
|
|
options: CarouselOptions(
|
|
initialPage: initialValue,
|
|
onPageChanged: (index, reason) {
|
|
onChanged?.call(index);
|
|
|
|
state.didChange(index);
|
|
},
|
|
height: height,
|
|
aspectRatio: 2.0,
|
|
enlargeCenterPage: true,
|
|
enableInfiniteScroll: false,
|
|
),
|
|
items: items.map((Widget item) {
|
|
return item;
|
|
}).toList(),
|
|
);
|
|
});
|
|
}
|