Two_ConcatenatedXItem<T, K> static method
Widget
Two_ConcatenatedXItem<T, K>({
- required Axis wrapDirection,
- required double fontSizeForItem,
- required Color? titleColor,
- required Iterable<
MapEntry< items,dynamic, List< >T> > - required Widget titleFirstWidget(
- T
- required K lastGroupListsBy(
- T
- required Widget lastWidgetForGroupBy(),
- required Widget lastWidget(
- T
- bool groupByForLastLevel = true,
- String? title,
- AlignmentGeometry? titleAlignOnTop,
- AlignmentGeometry? titleAlignOnLeft,
- CrossAxisAlignment? crossAxisAlignmentXItem,
- bool titleOnTop = true,
- bool titleFirstOnTop = true,
- bool? borderAllAroundList,
- bool? borderVisible,
- Color? backGroundColorTitleContainer,
- Color? colorBorderOfarea,
- Color? titleBorderColor,
- Color? firstBorderColorOfArea,
- Color? backGroundColor,
- Color? backGroundColorFirstXItem,
- Color? backGroundColorSecondXItem,
- Color? backGroundColorInternalXContainer,
- double? titleContainerHeight,
- double? titleContainerWidth,
- double? fontSizeForTitleOfArea,
- double? widthFirstXItem,
- double? widthSecondXItem,
- double? titleFirstContainerWidth,
- double? titleFirstContainerHeight,
- Axis? firstWrapDirection,
- Axis? secondWrapDirection,
- Axis? thirdWrapDirection,
Implementation
static Widget Two_ConcatenatedXItem<T, K>({
required Axis wrapDirection,
///fontSize testi dell'Item principale (Padre)
required double fontSizeForItem,
///Titolo dell'Item principale (Padre)
///Colore del titolo dell'Item principale (Padre)
required Color? titleColor,
///Prima lista di Items che conterrà l'Item principale (Padre)
required Iterable<MapEntry<dynamic, List<T>>> items,
///Widget per il titolo degli Items della prima lista
required Widget Function(T) titleFirstWidget,
///Raggruppamento per ...., da mettere la propietà o le propietà per fare il groupBy per la terza lista
required K Function(T) lastGroupListsBy,
///Widget da riempire per visualizzare gli items della seconda lista
required Widget Function(MapEntry<K, List<T>>) lastWidgetForGroupBy,
required Widget Function(T) lastWidget,
///Da settare false nel caso non si voglia un groupBy anche per l'ultima lista
bool groupByForLastLevel = true,
String? title,
AlignmentGeometry? titleAlignOnTop,
AlignmentGeometry? titleAlignOnLeft,
CrossAxisAlignment? crossAxisAlignmentXItem,
bool titleOnTop = true,
bool titleFirstOnTop = true,
bool? borderAllAroundList,
bool? borderVisible,
Color? backGroundColorTitleContainer,
Color? colorBorderOfarea,
Color? titleBorderColor,
Color? firstBorderColorOfArea,
Color? backGroundColor,
Color? backGroundColorFirstXItem,
Color? backGroundColorSecondXItem,
Color? backGroundColorInternalXContainer,
double? titleContainerHeight,
double? titleContainerWidth,
double? fontSizeForTitleOfArea,
double? widthFirstXItem,
double? widthSecondXItem,
double? titleFirstContainerWidth,
double? titleFirstContainerHeight,
Axis? firstWrapDirection,
Axis? secondWrapDirection,
Axis? thirdWrapDirection,
}) {
return XItem(title: title, title_Color: colorBorderOfarea ?? Colors.black, title_OnTop: titleOnTop, title_BorderColor: titleBorderColor ?? Colors.black, title_ContainerHeight: titleContainerHeight, card_Color: backGroundColor ?? Colors.black, title_WidthBorder: 5, title_BackGroundColor: backGroundColorTitleContainer ?? null, mainAxisAlignmentXItem: MainAxisAlignment.start, title_ContainerWidth: titleContainerWidth ?? double.infinity, title_AlignOnTop: titleAlignOnTop ?? Alignment.center, title_AlignOnLeft: titleAlignOnLeft ?? Alignment.center, title_Style: TextStyle(color: titleColor, fontSize: fontSizeForTitleOfArea, fontWeight: FontWeight.bold), children: [
items.length == 0
// NESSUNA - VUOTO
? XContainer(borderVisible: borderVisible ?? true, title: "", title_BackColor: colorBorderOfarea ?? Colors.black, borderAll: true, child: Container(height: 40, child: Row(children: [Expanded(child: Text("...nessuno...", textAlign: TextAlign.center, style: XStyles.xStyleText(fontSize: 30)))])))
// ITEMS
: XContainer(
borderVisible: borderVisible ?? true,
borderWidth: 5,
backGroundColorInternalWidget: backGroundColorInternalXContainer ?? Colors.grey[900],
title: "",
title_BackColor: colorBorderOfarea ?? Colors.black,
child: Wrap(
spacing: 1,
runSpacing: 1,
direction: Axis.horizontal,
//1ST GROUP
children: items
.map((grp) => XItem(
title_Widget: grp.value.map(titleFirstWidget).first,
// crossAxisAlignmentXItem: CrossAxisAlignment.start,
crossAxisAlignmentXItem: crossAxisAlignmentXItem ?? CrossAxisAlignment.center,
title_AlignOnTop: Alignment.center,
title_BackGroundColor: backGroundColorTitleContainer,
title_ContainerWidth: titleFirstOnTop == true ? titleFirstContainerWidth ?? 250 : titleFirstContainerWidth ?? 200,
title_OnTop: titleFirstOnTop,
title_ContainerHeight: titleFirstContainerHeight,
width: widthFirstXItem,
children: [
///Widget che visualizza Wrapped la lista delle Navi
XContainer(
title: "",
borderAll: true,
// backGroundColorInternalWidget: Colors.black,
title_BackColor: firstBorderColorOfArea ?? titleColor,
child: Wrap(
spacing: 1,
runSpacing: 1,
direction: Axis.horizontal,
// 2nd GROUP LIST
children: groupByForLastLevel == true
? grp.value
.groupListsBy<K>(lastGroupListsBy)
.entries
.map(
//ITEM
lastWidgetForGroupBy,
//ITEM
)
.toList()
: grp.value.map(lastWidget).toList()))
],
))
.toList())),
]);
}