materialStatePropertyResolver<T> function

MaterialStateProperty<T?> materialStatePropertyResolver<T>(
  1. {T? hoveredValue,
  2. T? focusedValue,
  3. T? pressedValue,
  4. T? draggedValue,
  5. T? selectedValue,
  6. T? scrolledUnderValue,
  7. T? disabledValue,
  8. T? errorValue,
  9. T? defaultValue}
)

Generates a MaterialStateProperty based on given values for different states.

Implementation

MaterialStateProperty<T?> materialStatePropertyResolver<T>({
  // Value when MaterialState is hovered
  T? hoveredValue,
  // Value when MaterialState is focused
  T? focusedValue,
  // Value when MaterialState is pressed
  T? pressedValue,
  // Value when MaterialState is dragged
  T? draggedValue,
  // Value when MaterialState is selected
  T? selectedValue,
  // Value when MaterialState is scrolledUnder
  T? scrolledUnderValue,
  // Value when MaterialState is disabled
  T? disabledValue,
  // Value when MaterialState is error
  T? errorValue,
  // Default value when no state is present
  T? defaultValue,
}) {
  // The blocks check for each possible state and returns the value
  // If none of the states is present, default value is returned
  return MaterialStateProperty.resolveWith<T?>((states) {
    if (hoveredValue != null && states.contains(MaterialState.hovered)) return hoveredValue;
    if (focusedValue != null && states.contains(MaterialState.focused)) return focusedValue;
    if (pressedValue != null && states.contains(MaterialState.pressed)) return pressedValue;
    if (draggedValue != null && states.contains(MaterialState.dragged)) return draggedValue;
    if (selectedValue != null && states.contains(MaterialState.selected)) return selectedValue;
    if (scrolledUnderValue != null && states.contains(MaterialState.scrolledUnder)) return scrolledUnderValue;
    if (disabledValue != null && states.contains(MaterialState.disabled)) return disabledValue;
    if (errorValue != null && states.contains(MaterialState.error)) return errorValue;
    return defaultValue;
  });
}