From 54aa6108566415f06284545d761d037ef24b9580 Mon Sep 17 00:00:00 2001 From: Sikander Saleem Date: Mon, 17 Mar 2025 15:46:17 +0300 Subject: [PATCH] long text field changed to separate field. --- .../request_detail_fragment.dart | 42 ++++++++++++------- lib/widgets/item_detail_view_widget.dart | 5 ++- 2 files changed, 29 insertions(+), 18 deletions(-) diff --git a/lib/ui/work_list/itg_fragments/request_detail_fragment.dart b/lib/ui/work_list/itg_fragments/request_detail_fragment.dart index ba67ba4..d4d7e07 100644 --- a/lib/ui/work_list/itg_fragments/request_detail_fragment.dart +++ b/lib/ui/work_list/itg_fragments/request_detail_fragment.dart @@ -40,6 +40,7 @@ class RequestDetailFragment extends StatelessWidget { ? LocaleKeys.noDataAvailable.tr().toText16().center : ListView( shrinkWrap: true, + physics: NeverScrollableScrollPhysics(), children: uiList, ), ), @@ -73,26 +74,29 @@ class RequestDetailFragment extends StatelessWidget { List fields = List.from(fieldsF); bool isOdd = false; + + List longValueFields = []; + + longValueFields = fields + .where((Fields element) => (element.value?.length ?? 0) > 120) + .toList() + .map((Fields descriptionFormat) => ItemDetailViewGridItem( + 2, + descriptionFormat.title, + descriptionFormat.value == null ? (descriptionFormat.multipleValue?.join(", ") ?? "") : descriptionFormat.value ?? "", + type: descriptionFormat.type, + showSpaceAfterLine: true, + maxLine: 0, + )) + .toList(); + + fields.removeWhere((element) => (element.value?.length ?? 0) > 120); + if (fields.length % 2 != 0) { isOdd = true; fields.add(new Fields()); } - int descriptionFormatIndex = fields.indexWhere((element) => element.title == "Description Format" || element.title == "Description Format"); // todo add arabic in future - Widget? descriptionFormatView; - if (descriptionFormatIndex >= 0) { - Fields descriptionFormat = fields[descriptionFormatIndex]; - fields.removeAt(descriptionFormatIndex); - - descriptionFormatView = ItemDetailViewGridItem( - 2, - descriptionFormat.title, - descriptionFormat.value == null ? (descriptionFormat.multipleValue?.join(", ") ?? "") : descriptionFormat.value ?? "", - type: descriptionFormat.type, - maxLine: 0, - ); - } - return Column( mainAxisSize: MainAxisSize.min, children: [ @@ -131,7 +135,13 @@ class RequestDetailFragment extends StatelessWidget { childAspectRatio: (itemWidth / itemHeight), ), ), - if (descriptionFormatView != null) descriptionFormatView, + ListView.separated( + shrinkWrap: true, + physics: const NeverScrollableScrollPhysics(), + padding: EdgeInsets.zero, + itemBuilder: (cxt, index) => longValueFields[index], + separatorBuilder: (cxt, index) => 16.height, + itemCount: longValueFields.length), ], ).objectContainerView(); return ListView.separated( diff --git a/lib/widgets/item_detail_view_widget.dart b/lib/widgets/item_detail_view_widget.dart index a98b066..64bbd01 100644 --- a/lib/widgets/item_detail_view_widget.dart +++ b/lib/widgets/item_detail_view_widget.dart @@ -53,8 +53,9 @@ class ItemDetailViewGridItem extends StatelessWidget { final String? type; final bool isNeedToShowEmptyDivider; final int maxLine; + final bool showSpaceAfterLine; - ItemDetailViewGridItem(this.index, this.title, this.value, {Key? key, this.isNeedToShowEmptyDivider = false, this.type = "", this.maxLine = 6}) : super(key: key); + ItemDetailViewGridItem(this.index, this.title, this.value, {Key? key, this.isNeedToShowEmptyDivider = false, this.showSpaceAfterLine = false, this.type = "", this.maxLine = 6}) : super(key: key); @override Widget build(BuildContext context) { @@ -92,7 +93,7 @@ class ItemDetailViewGridItem extends StatelessWidget { : (value!.isEmpty ? "--" : value).toString().toText12Auto(color: MyColors.normalTextColor, maxLine: maxLine) : Container(), ], - ), + ).paddingOnly(top: showSpaceAfterLine ? 16 : 0), ); } }