@@ -63,6 +63,7 @@ import androidx.compose.ui.draw.dropShadow
6363import androidx.compose.ui.graphics.Color
6464import androidx.compose.ui.graphics.shadow.Shadow
6565import androidx.compose.ui.graphics.vector.ImageVector
66+ import androidx.compose.ui.layout.LookaheadScope
6667import androidx.compose.ui.platform.LocalContext
6768import androidx.compose.ui.res.stringResource
6869import androidx.compose.ui.res.vectorResource
@@ -75,6 +76,7 @@ import com.android.developers.androidify.results.PermissionRationaleDialog
7576import com.android.developers.androidify.results.R
7677import com.android.developers.androidify.results.shareImage
7778import com.android.developers.androidify.theme.AndroidifyTheme
79+ import com.android.developers.androidify.theme.LocalAnimateBoundsScope
7880import com.android.developers.androidify.theme.components.AboutButton
7981import com.android.developers.androidify.theme.components.AndroidifyTopAppBar
8082import com.android.developers.androidify.theme.components.PrimaryButton
@@ -266,6 +268,7 @@ private fun CustomizeExportContents(
266268 )
267269 }
268270 }
271+
269272 when (layoutType) {
270273 CustomizeExportLayoutType .Medium -> CustomizeExportScreenScaffold (
271274 snackbarHostState,
@@ -318,29 +321,34 @@ private fun CustomizeExportLayoutCompact(
318321 toolSelector : ToolSelectorComposable ,
319322 actionButtons : @Composable (Modifier ) -> Unit ,
320323) {
321- Column (
322- modifier = Modifier
323- .fillMaxSize()
324- .padding(paddingValues),
325- horizontalAlignment = Alignment .CenterHorizontally ,
326- verticalArrangement = Arrangement .SpaceBetween ,
327- ) {
328- Box (
329- modifier = Modifier
330- .weight(1f , fill = true ),
331- contentAlignment = Alignment .Center ,
332- ) {
333- imageResult(
334- state.exportImageCanvas,
335- )
324+ LookaheadScope {
325+ CompositionLocalProvider (LocalAnimateBoundsScope provides this ) {
326+
327+ Column (
328+ modifier = Modifier
329+ .fillMaxSize()
330+ .padding(paddingValues),
331+ horizontalAlignment = Alignment .CenterHorizontally ,
332+ verticalArrangement = Arrangement .SpaceBetween ,
333+ ) {
334+ Box (
335+ modifier = Modifier
336+ .weight(1f , fill = true ),
337+ contentAlignment = Alignment .Center ,
338+ ) {
339+ imageResult(
340+ state.exportImageCanvas,
341+ )
342+ }
343+ Spacer (modifier = Modifier .height(16 .dp))
344+ toolSelector(Modifier , true )
345+ Spacer (modifier = Modifier .height(16 .dp))
346+ toolDetail(Modifier , true )
347+ Spacer (modifier = Modifier .height(16 .dp))
348+ actionButtons(Modifier )
349+ Spacer (modifier = Modifier .height(24 .dp))
350+ }
336351 }
337- Spacer (modifier = Modifier .height(16 .dp))
338- toolSelector(Modifier , true )
339- Spacer (modifier = Modifier .height(16 .dp))
340- toolDetail(Modifier , true )
341- Spacer (modifier = Modifier .height(16 .dp))
342- actionButtons(Modifier )
343- Spacer (modifier = Modifier .height(24 .dp))
344352 }
345353}
346354
@@ -353,50 +361,54 @@ private fun CustomizeExportLayoutMedium(
353361 toolSelector : ToolSelectorComposable ,
354362 actionButtons : @Composable (Modifier ) -> Unit ,
355363) {
356- Row (
357- Modifier
358- .fillMaxSize()
359- .padding(paddingValues),
360- verticalAlignment = Alignment .CenterVertically ,
361- horizontalArrangement = Arrangement .SpaceBetween ,
362- ) {
363- Box (
364- modifier = Modifier .weight(0.6f ),
365- contentAlignment = Alignment .Center ,
366- ) {
367- imageResult(
368- state.exportImageCanvas,
369- )
370- }
371- Column (
372- Modifier
373- .weight(0.4f )
374- .fillMaxHeight(),
375- horizontalAlignment = Alignment .CenterHorizontally ,
376- verticalArrangement = Arrangement .SpaceBetween ,
377- ) {
364+ LookaheadScope {
365+ CompositionLocalProvider (LocalAnimateBoundsScope provides this ) {
378366 Row (
379367 Modifier
380- .weight(1f )
381- .fillMaxSize(),
382- horizontalArrangement = Arrangement .SpaceAround ,
368+ .fillMaxSize()
369+ .padding(paddingValues),
383370 verticalAlignment = Alignment .CenterVertically ,
384-
371+ horizontalArrangement = Arrangement . SpaceBetween ,
385372 ) {
386- Box (modifier = Modifier .weight(1f )) {
387- toolDetail(Modifier .align(Alignment .CenterEnd ), false )
373+ Box (
374+ modifier = Modifier .weight(0.6f ),
375+ contentAlignment = Alignment .Center ,
376+ ) {
377+ imageResult(
378+ state.exportImageCanvas,
379+ )
380+ }
381+ Column (
382+ Modifier
383+ .weight(0.4f )
384+ .fillMaxHeight(),
385+ horizontalAlignment = Alignment .CenterHorizontally ,
386+ verticalArrangement = Arrangement .SpaceBetween ,
387+ ) {
388+ Row (
389+ Modifier
390+ .weight(1f )
391+ .fillMaxSize(),
392+ horizontalArrangement = Arrangement .SpaceAround ,
393+ verticalAlignment = Alignment .CenterVertically ,
394+
395+ ) {
396+ Box (modifier = Modifier .weight(1f )) {
397+ toolDetail(Modifier .align(Alignment .CenterEnd ), false )
398+ }
399+ Spacer (modifier = Modifier .size(16 .dp))
400+ toolSelector(Modifier .requiredSizeIn(minWidth = 56 .dp), false )
401+ Spacer (modifier = Modifier .size(16 .dp))
402+ }
403+ Spacer (modifier = Modifier .size(16 .dp))
404+ actionButtons(
405+ Modifier
406+ .align(Alignment .End )
407+ .padding(end = 16 .dp),
408+ )
409+ Spacer (modifier = Modifier .size(24 .dp))
388410 }
389- Spacer (modifier = Modifier .size(16 .dp))
390- toolSelector(Modifier .requiredSizeIn(minWidth = 56 .dp), false )
391- Spacer (modifier = Modifier .size(16 .dp))
392411 }
393- Spacer (modifier = Modifier .size(16 .dp))
394- actionButtons(
395- Modifier
396- .align(Alignment .End )
397- .padding(end = 16 .dp),
398- )
399- Spacer (modifier = Modifier .size(24 .dp))
400412 }
401413 }
402414}
0 commit comments