CardViewModel¶
Il CardViewModel è definito come segue:
@freezed
class CardViewModel with _$CardViewModel {
factory CardViewModel({
required final CardContentConfig contentConfig,
final CardHeaderConfig? headerConfig,
final CardBottomConfig? bottomConfig,
final OverlayItemConfig? overlayConfig,
required final CardConfig config,
}) = _CardViewModel;
}
Proprietà:
contentConfig: imposta il contenuto principale della card (titolo, descrizione, ecc.).
headerConfig: configura l’intestazione della card (immagine, widget superiori, ecc.).
bottomConfig: imposta i contenuti della sezione inferiore (barra di progresso, pulsanti, ecc.).
overlayConfig: configura l’overlay item (icone, data, ecc.).
config: contiene le impostazioni generali della card, come larghezza, altezza e callback per il back.
Dettagli delle configurazioni¶
### CardConfig Definisce le impostazioni generali della card.
@freezed
class CardConfig with _$CardConfig {
factory CardConfig({
final double? width,
final double? height,
final Color? backgroundColor,
required final EvaCardLayoutBuilder layoutBuilder,
final Function(CardViewModel item)? onTap
}) = _CardConfig;
}
Proprietà:
width, height: dimensioni della card.
backgroundColor: colore di sfondo della card.
layoutBuilder: tipo di layoutBuilder associato alla card.
onTap: callback per l’evento di tap sulla card.
### CardContentConfig Configura il contenuto principale della card.
@freezed
class CardContentConfig with _$CardContentConfig {
factory CardContentConfig({
final IconTextViewModel? title,
final IconTextViewModel? description,
final IconTextViewModel? subDescription,
final Widget? customWidget,
}) = _CardContentConfig;
}
Proprietà:
title, description, subDescription: elementi di testo e icone per il contenuto.
customWidget: widget personalizzato aggiunto al contenuto.
### CardHeaderConfig Configura l’intestazione della card.
@freezed
class CardHeaderConfig with _$CardHeaderConfig {
factory CardHeaderConfig({
final String? imageUrl,
final double? imageHeight,
final Widget? topRightWidget,
final List<Widget>? bottomRightWidgets,
}) = _CardHeaderConfig;
}
Proprietà:
imageUrl: URL dell’immagine nel’header.
imageHeight: altezza dell’immagine.
topRightWidget: widget in alto a destra.
bottomRightWidgets: lista di widget in basso a destra.
### CardBottomConfig Configura la parte inferiore della card.
@freezed
class CardBottomConfig with _$CardBottomConfig {
factory CardBottomConfig({
final CardBottomProgress? progress,
final CardBottomButtons? buttons,
final Widget? customWidget,
}) = _CardBottomConfig;
}
Proprietà:
progress: progress bar.
buttons: buttons nella parte inferiore della card.
customWidget: widget personalizzato.
### CardBottomProgress Configura la progress bar.
@freezed
class CardBottomProgress with _$CardBottomProgress {
factory CardBottomProgress({
required final double progressValue,
final Color? progressBackgroundColor,
final Color? progressColor,
}) = _CardBottomProgress;
}
Proprietà:
progressValue: valore del progress (da 0.0 a 1.0).
progressBackgroundColor e ``progressColor``: colori della progress bar.
### CardBottomButtons Definisce i pulsanti nella sezione inferiore.
@freezed
class CardBottomButtons with _$CardBottomButtons {
factory CardBottomButtons({
required final List<ButtonViewModel> buttons,
}) = _CardBottomButtons;
}
Proprietà:
buttons: lista di pulsanti.