diff --git a/Apps/Examples/Examples/FioriSwiftUICore/FioriButton/CardFullWidthSingleButtonExample.swift b/Apps/Examples/Examples/FioriSwiftUICore/FioriButton/CardFullWidthSingleButtonExample.swift index bcb29a096d..767cd31d17 100644 --- a/Apps/Examples/Examples/FioriSwiftUICore/FioriButton/CardFullWidthSingleButtonExample.swift +++ b/Apps/Examples/Examples/FioriSwiftUICore/FioriButton/CardFullWidthSingleButtonExample.swift @@ -88,7 +88,7 @@ struct CardFullWidthSingleButtonExample: View { } var body: some View { - ScrollView { + List { Section { Divider() HStack { @@ -119,7 +119,7 @@ struct CardFullWidthSingleButtonExample: View { .padding(.horizontal, 16) } else { ScrollView(.horizontal, showsIndicators: false) { - HStack(spacing: 0) { + HStack(spacing: 8) { ForEach(0 ..< self._dataSource.count, id: \.self) { index in let item = self._dataSource[index] self.cardView(for: item) @@ -139,9 +139,12 @@ struct CardFullWidthSingleButtonExample: View { .padding() .background(Color.preferredColor(.secondaryGroupedBackground)) } - .navigationTitle("Object Card - Full Width Single Button") - .navigationBarTitleDisplayMode(.inline) + .listRowInsets(EdgeInsets(top: 0, leading: 0, bottom: 0, trailing: 0)) + .listRowSeparator(.hidden) } + .listStyle(.grouped) + .navigationTitle("Object Card - Full Width Single Button") + .navigationBarTitleDisplayMode(.inline) } @ViewBuilder @@ -165,11 +168,13 @@ struct CardFullWidthSingleButtonExample: View { self.updateDataSource(id: item.id) }, label: { _ in Text(self.titleStr(item.loadingState)) + .multilineTextAlignment(.center) }) .fioriButtonStyle(FioriPrimaryButtonStyle(.infinity, loadingState: item.loadingState)) .disabled(item.loadingState != .unspecified) } - .frame(width: 300, height: 192) + .frame(width: 300) + .fixedSize(horizontal: false, vertical: true) .background(Color.white) } diff --git a/Sources/FioriSwiftUICore/_FioriStyles/CardFooterStyle.fiori.swift b/Sources/FioriSwiftUICore/_FioriStyles/CardFooterStyle.fiori.swift index c2cbb42377..dfcc31bef3 100644 --- a/Sources/FioriSwiftUICore/_FioriStyles/CardFooterStyle.fiori.swift +++ b/Sources/FioriSwiftUICore/_FioriStyles/CardFooterStyle.fiori.swift @@ -91,7 +91,7 @@ private struct CardFooterLayout: Layout { cache.clear() let subViewSizes = subviews.reversed().map { - $0.sizeThatFits(.unspecified) + $0.sizeThatFits(proposal) } self.calculateLayout(proposalWidth: proposal.width, subViewSizes: subViewSizes, layoutMode: layoutMode, cache: &cache) diff --git a/Sources/FioriSwiftUICore/_FioriStyles/ProfileHeaderStyle.fiori.swift b/Sources/FioriSwiftUICore/_FioriStyles/ProfileHeaderStyle.fiori.swift index ffe91e5fe8..6cdcf7a0ba 100644 --- a/Sources/FioriSwiftUICore/_FioriStyles/ProfileHeaderStyle.fiori.swift +++ b/Sources/FioriSwiftUICore/_FioriStyles/ProfileHeaderStyle.fiori.swift @@ -116,6 +116,7 @@ public struct ProfileHeaderBaseStyle: ProfileHeaderStyle { } } }) + .frame(maxWidth: .infinity) } } @@ -155,6 +156,7 @@ public struct ProfileHeaderBaseStyle: ProfileHeaderStyle { self.detailImage(configuration) VStack(alignment: .leading, spacing: 8 * oppositeValue) { configuration.title + .fixedSize(horizontal: false, vertical: true) .sizeReader(size: { size in if size.different(with: self.titleSize) { self.titleSize = size @@ -162,22 +164,29 @@ public struct ProfileHeaderBaseStyle: ProfileHeaderStyle { }) ZStack { self.subtitle(configuration) + .fixedSize(horizontal: false, vertical: true) .opacity(oppositeValue) .padding(.top, self.subtitlePadding(configuration)) } .clipped() .padding(.top, -8 * validTransitionValue) } + .frame(maxWidth: .infinity) + Spacer() if !configuration.description.isEmpty, validTransitionValue < 1 { configuration.description + .fixedSize(horizontal: false, vertical: true) .opacity(oppositeValue) + .frame(maxWidth: .infinity) Spacer() } if !configuration.detailContent.isEmpty { configuration.detailContent + .frame(maxWidth: .infinity) } } + .padding(.horizontal) } private func titlePadding(_ configuration: ProfileHeaderConfiguration) -> CGFloat {