Skip to content

Commit 2c46281

Browse files
authored
Shared element snippets (#258)
* add shared element snippets * Apply Spotless * Split snippets into different files. * Apply Spotless * Snippet updates based on peer feedback. * Apply Spotless --------- Co-authored-by: riggaroo <[email protected]>
1 parent 90bcd56 commit 2c46281

File tree

3 files changed

+248
-241
lines changed

3 files changed

+248
-241
lines changed

compose/snippets/src/main/java/com/example/compose/snippets/animations/sharedelement/BasicSharedElementSnippets.kt

Lines changed: 6 additions & 89 deletions
Original file line numberDiff line numberDiff line change
@@ -55,93 +55,6 @@ import com.example.compose.snippets.R
5555
import com.example.compose.snippets.ui.theme.LavenderLight
5656
import com.example.compose.snippets.ui.theme.RoseLight
5757

58-
private class SharedElementBasicUsage1 {
59-
@Preview
60-
// [START android_compose_animations_shared_element_start]
61-
@Composable
62-
private fun SharedElementApp() {
63-
var showDetails by remember {
64-
mutableStateOf(false)
65-
}
66-
AnimatedContent(
67-
showDetails,
68-
label = "basic_transition"
69-
) { targetState ->
70-
if (!targetState) {
71-
MainContent(onShowDetails = {
72-
showDetails = true
73-
})
74-
} else {
75-
DetailsContent(onBack = {
76-
showDetails = false
77-
})
78-
}
79-
}
80-
}
81-
82-
@Composable
83-
private fun MainContent(onShowDetails: () -> Unit) {
84-
Row(
85-
// [START_EXCLUDE]
86-
modifier = Modifier
87-
.padding(8.dp)
88-
.border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp))
89-
.background(LavenderLight, RoundedCornerShape(8.dp))
90-
.clickable {
91-
onShowDetails()
92-
}
93-
.padding(8.dp)
94-
// [END_EXCLUDE]
95-
) {
96-
Image(
97-
painter = painterResource(id = R.drawable.cupcake),
98-
contentDescription = "Cupcake",
99-
modifier = Modifier
100-
.size(100.dp)
101-
.clip(CircleShape),
102-
contentScale = ContentScale.Crop
103-
)
104-
Text("Cupcake", fontSize = 21.sp)
105-
}
106-
}
107-
108-
@Composable
109-
private fun DetailsContent(modifier: Modifier = Modifier, onBack: () -> Unit) {
110-
Column(
111-
// [START_EXCLUDE]
112-
modifier = Modifier
113-
.padding(top = 200.dp, start = 16.dp, end = 16.dp)
114-
.border(1.dp, Color.Gray.copy(alpha = 0.5f), RoundedCornerShape(8.dp))
115-
.background(RoseLight, RoundedCornerShape(8.dp))
116-
.clickable {
117-
onBack()
118-
}
119-
.padding(8.dp)
120-
// [END_EXCLUDE]
121-
) {
122-
Image(
123-
painter = painterResource(id = R.drawable.cupcake),
124-
contentDescription = "Cupcake",
125-
modifier = Modifier
126-
.size(200.dp)
127-
.clip(CircleShape),
128-
contentScale = ContentScale.Crop
129-
)
130-
Text("Cupcake", fontSize = 28.sp)
131-
// [START_EXCLUDE]
132-
Text(
133-
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " +
134-
"Lorem ipsum dolor sit amet, consectetur adipiscing elit." +
135-
" Curabitur sagittis, lectus posuere imperdiet facilisis, nibh massa " +
136-
"molestie est, quis dapibus orci ligula non magna. Pellentesque rhoncus " +
137-
"hendrerit massa quis ultricies. Curabitur congue ullamcorper leo, at maximus"
138-
)
139-
// [END_EXCLUDE]
140-
}
141-
}
142-
// [END android_compose_animations_shared_element_start]
143-
}
144-
14558
private class SharedElementBasicUsage2 {
14659
@Preview
14760
@Composable
@@ -203,7 +116,9 @@ private class SharedElementBasicUsage2 {
203116
.clip(CircleShape),
204117
contentScale = ContentScale.Crop
205118
)
119+
// [START_EXCLUDE]
206120
Text("Cupcake", fontSize = 21.sp)
121+
// [END_EXCLUDE]
207122
}
208123
}
209124

@@ -234,8 +149,8 @@ private class SharedElementBasicUsage2 {
234149
.clip(CircleShape),
235150
contentScale = ContentScale.Crop
236151
)
237-
Text("Cupcake", fontSize = 28.sp)
238152
// [START_EXCLUDE]
153+
Text("Cupcake", fontSize = 28.sp)
239154
Text(
240155
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " +
241156
"Lorem ipsum dolor sit amet, consectetur adipiscing elit." +
@@ -315,13 +230,15 @@ private class SharedElementBasicUsage3 {
315230
.clip(CircleShape),
316231
contentScale = ContentScale.Crop
317232
)
233+
// [START_EXCLUDE]
318234
Text(
319235
"Cupcake", fontSize = 21.sp,
320236
modifier = Modifier.sharedBounds(
321237
rememberSharedContentState(key = "title"),
322238
animatedVisibilityScope = animatedVisibilityScope
323239
)
324240
)
241+
// [END_EXCLUDE]
325242
}
326243
}
327244
}
@@ -358,14 +275,14 @@ private class SharedElementBasicUsage3 {
358275
.clip(CircleShape),
359276
contentScale = ContentScale.Crop
360277
)
278+
// [START_EXCLUDE]
361279
Text(
362280
"Cupcake", fontSize = 28.sp,
363281
modifier = Modifier.sharedBounds(
364282
rememberSharedContentState(key = "title"),
365283
animatedVisibilityScope = animatedVisibilityScope
366284
)
367285
)
368-
// [START_EXCLUDE]
369286
Text(
370287
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur sit amet lobortis velit. " +
371288
"Lorem ipsum dolor sit amet, consectetur adipiscing elit." +

0 commit comments

Comments
 (0)