selectDropdown<T> static method

dynamic selectDropdown<T>({
  1. required String title,
  2. required T selectedValue,
  3. required List<T> list,
  4. required void onChanged(
    1. T?
    ),
  5. required Widget itemBuilder(
    1. T item
    ),
})

Implementation

static selectDropdown<T>({
  required String title,
  required T selectedValue,
  required List<T> list,
  required void Function(T?) onChanged,
  required Widget Function(T item) itemBuilder,
}) {
  final primay = Get.find<PWThemeController>().theme.colorScheme.primary;
  return AnimatedContainer(
      padding: const EdgeInsets.symmetric(vertical: 4, horizontal: 8),
      duration: const Duration(milliseconds: 500),
      decoration: BoxDecoration(
        border: Border.all(color: primay),
        borderRadius: BorderRadius.circular(4),
      ),
      child: Row(
        mainAxisAlignment: MainAxisAlignment.spaceBetween,
        children: [
          Text(title),
          DropdownButton<T>(
            underline: Container(),
            alignment: Alignment.centerRight,
            borderRadius: BorderRadius.circular(4),
            value: selectedValue,
            items: list.map((e) {
              return DropdownMenuItem<T>(
                value: e,
                child: itemBuilder(e),
              );
            }).toList(),
            onChanged: onChanged,
          ),
        ],
      ));
}