Skip to content

Commit

Permalink
listsection
Browse files Browse the repository at this point in the history
  • Loading branch information
goderbauer committed May 4, 2023
1 parent d8aa21f commit 88c697b
Showing 1 changed file with 18 additions and 21 deletions.
39 changes: 18 additions & 21 deletions packages/flutter/lib/src/cupertino/list_section.dart
Expand Up @@ -402,8 +402,7 @@ class CupertinoListSection extends StatelessWidget {
);
}

BorderRadius? childrenGroupBorderRadius;
DecoratedBox? decoratedChildrenGroup;
Widget? decoratedChildrenGroup;
if (children != null && children!.isNotEmpty) {
// We construct childrenWithDividers as follows:
// Insert a short divider between all rows.
Expand All @@ -425,15 +424,11 @@ class CupertinoListSection extends StatelessWidget {
childrenWithDividers.add(longDivider);
}

switch (type) {
case CupertinoListSectionType.insetGrouped:
childrenGroupBorderRadius = _kDefaultInsetGroupedBorderRadius;
case CupertinoListSectionType.base:
childrenGroupBorderRadius = BorderRadius.zero;
}
final BorderRadius childrenGroupBorderRadius = switch (type) {
CupertinoListSectionType.insetGrouped => _kDefaultInsetGroupedBorderRadius,
CupertinoListSectionType.base => BorderRadius.zero,
};

// Refactored the decorate children group in one place to avoid repeating it
// twice down bellow in the returned widget.
decoratedChildrenGroup = DecoratedBox(
decoration: decoration ??
BoxDecoration(
Expand All @@ -445,6 +440,17 @@ class CupertinoListSection extends StatelessWidget {
),
child: Column(children: childrenWithDividers),
);

decoratedChildrenGroup = Padding(
padding: margin,
child: clipBehavior == Clip.none
? decoratedChildrenGroup
: ClipRRect(
borderRadius: childrenGroupBorderRadius,
clipBehavior: clipBehavior,
child: decoratedChildrenGroup,
),
);
}

return DecoratedBox(
Expand All @@ -464,17 +470,8 @@ class CupertinoListSection extends StatelessWidget {
child: headerWidget,
),
),
if (children != null && children!.isNotEmpty)
Padding(
padding: margin,
child: clipBehavior == Clip.none
? decoratedChildrenGroup
: ClipRRect(
borderRadius: childrenGroupBorderRadius,
clipBehavior: clipBehavior,
child: decoratedChildrenGroup,
),
),
if (decoratedChildrenGroup != null)
decoratedChildrenGroup,
if (footerWidget != null)
Align(
alignment: AlignmentDirectional.centerStart,
Expand Down

0 comments on commit 88c697b

Please sign in to comment.