@@ -115,18 +115,18 @@ fun TopAppBar(
115115 // app bar's defined constant height value (i.e. the ContainerHeight token).
116116 Surface (
117117 color = color,
118- modifier = if (defaultWindowInsetsPadding) {
118+ modifier =
119119 modifier
120- .windowInsetsPadding( WindowInsets .displayCutout.only( WindowInsetsSides . Horizontal ))
121- .windowInsetsPadding( WindowInsets .navigationBars.only( WindowInsetsSides . Horizontal ))
122- .windowInsetsPadding( WindowInsets .statusBars.only( WindowInsetsSides . Top ))
123- .windowInsetsPadding( WindowInsets .captionBar.only( WindowInsetsSides . Top ))
124- } else {
125- modifier
126- }
127- .pointerInput( Unit ) {
128- detectVerticalDragGestures { _, _ -> }
129- }
120+ .pointerInput( Unit ) {
121+ detectVerticalDragGestures { _, _ -> }
122+ }
123+ .then(
124+ if (defaultWindowInsetsPadding) {
125+ Modifier
126+ .windowInsetsPadding( WindowInsets .displayCutout.only( WindowInsetsSides . Horizontal ))
127+ .windowInsetsPadding( WindowInsets .navigationBars.only( WindowInsetsSides . Horizontal ))
128+ } else Modifier
129+ )
130130 ) {
131131 TopAppBarLayout (
132132 title = title,
@@ -135,7 +135,8 @@ fun TopAppBar(
135135 actions = actionsRow,
136136 scrolledOffset = { scrollBehavior?.state?.heightOffset ? : 0f },
137137 expandedHeightPx = expandedHeightPx,
138- horizontalPadding = horizontalPadding
138+ horizontalPadding = horizontalPadding,
139+ defaultWindowInsetsPadding = defaultWindowInsetsPadding
139140 )
140141 }
141142}
@@ -172,24 +173,25 @@ fun SmallTopAppBar(
172173 // app bar's defined constant height value (i.e. the ContainerHeight token).
173174 Surface (
174175 color = color,
175- modifier = if (defaultWindowInsetsPadding) {
176- modifier
177- .windowInsetsPadding(WindowInsets .displayCutout.only(WindowInsetsSides .Horizontal ))
178- .windowInsetsPadding(WindowInsets .navigationBars.only(WindowInsetsSides .Horizontal ))
179- .windowInsetsPadding(WindowInsets .statusBars.only(WindowInsetsSides .Top ))
180- .windowInsetsPadding(WindowInsets .captionBar.only(WindowInsetsSides .Top ))
181- } else {
176+ modifier =
182177 modifier
183- }
184- .pointerInput(Unit ) {
185- detectVerticalDragGestures { _, _ -> }
186- }
178+ .pointerInput(Unit ) {
179+ detectVerticalDragGestures { _, _ -> }
180+ }
181+ .then(
182+ if (defaultWindowInsetsPadding) {
183+ Modifier
184+ .windowInsetsPadding(WindowInsets .displayCutout.only(WindowInsetsSides .Horizontal ))
185+ .windowInsetsPadding(WindowInsets .navigationBars.only(WindowInsetsSides .Horizontal ))
186+ } else Modifier
187+ )
187188 ) {
188189 SmallTopAppBarLayout (
189190 title = title,
190191 navigationIcon = navigationIcon,
191192 actions = actionsRow,
192- horizontalPadding = horizontalPadding
193+ horizontalPadding = horizontalPadding,
194+ defaultWindowInsetsPadding = defaultWindowInsetsPadding
193195 )
194196 }
195197}
@@ -547,7 +549,8 @@ private fun TopAppBarLayout(
547549 actions : @Composable () -> Unit ,
548550 scrolledOffset : ScrolledOffset ,
549551 expandedHeightPx : Float ,
550- horizontalPadding : Dp
552+ horizontalPadding : Dp ,
553+ defaultWindowInsetsPadding : Boolean
551554) {
552555 val extOffset = abs(scrolledOffset.offset()) / expandedHeightPx * 2
553556 val alpha by animateFloatAsState(
@@ -605,6 +608,13 @@ private fun TopAppBarLayout(
605608 }
606609 },
607610 modifier = Modifier
611+ .then(
612+ if (defaultWindowInsetsPadding) {
613+ Modifier
614+ .windowInsetsPadding(WindowInsets .statusBars.only(WindowInsetsSides .Top ))
615+ .windowInsetsPadding(WindowInsets .captionBar.only(WindowInsetsSides .Top ))
616+ } else Modifier
617+ )
608618 .heightIn(max = 56 .dp + TopAppBarExpandedHeight )
609619 .clipToBounds()
610620 ) { measurables, constraints ->
@@ -701,7 +711,8 @@ private fun SmallTopAppBarLayout(
701711 title : String ,
702712 navigationIcon : @Composable () -> Unit ,
703713 actions : @Composable () -> Unit ,
704- horizontalPadding : Dp
714+ horizontalPadding : Dp ,
715+ defaultWindowInsetsPadding : Boolean
705716) {
706717 Layout (
707718 {
@@ -730,8 +741,16 @@ private fun SmallTopAppBarLayout(
730741 actions()
731742 }
732743 },
733- modifier = Modifier
734- .heightIn(max = 56 .dp)
744+ modifier =
745+ Modifier
746+ .then(
747+ if (defaultWindowInsetsPadding) {
748+ Modifier
749+ .windowInsetsPadding(WindowInsets .statusBars.only(WindowInsetsSides .Top ))
750+ .windowInsetsPadding(WindowInsets .captionBar.only(WindowInsetsSides .Top ))
751+ } else Modifier
752+ )
753+ .heightIn(max = 56 .dp)
735754 ) { measurables, constraints ->
736755 val navigationIconPlaceable =
737756 measurables
0 commit comments