1 package com.airbnb.lottie.sample.compose.examples
2
3 import androidx.compose.foundation.clickable
4 import androidx.compose.foundation.layout.Column
5 import androidx.compose.foundation.rememberScrollState
6 import androidx.compose.foundation.verticalScroll
7 import androidx.compose.material.ListItem
8 import androidx.compose.material.Text
9 import androidx.compose.runtime.Composable
10 import androidx.compose.ui.Modifier
11 import androidx.compose.ui.res.stringResource
12 import androidx.navigation.NavController
13 import com.airbnb.lottie.sample.compose.R
14 import com.airbnb.lottie.sample.compose.Route
15 import com.airbnb.lottie.sample.compose.composables.Marquee
16 import com.airbnb.lottie.sample.compose.navigate
17
18 @Composable
ExamplesPagenull19 fun ExamplesPage(navController: NavController) {
20 Column(
21 modifier = Modifier
22 .verticalScroll(rememberScrollState())
23 ) {
24 Marquee(stringResource(R.string.examples_title))
25 ListItem(
26 text = { Text("Basic Usage") },
27 secondaryText = { Text("Various example of simple Lottie usage") },
28 modifier = Modifier
29 .clickable { navController.navigate(Route.BasicUsageExamples) }
30 )
31 ListItem(
32 text = { Text("Animatable Usage") },
33 secondaryText = { Text("Usage of LottieAnimatable") },
34 modifier = Modifier
35 .clickable { navController.navigate(Route.AnimatableUsageExamples) }
36 )
37 ListItem(
38 text = { Text("Transitions") },
39 secondaryText = { Text("Sequencing segments of an animation based on state") },
40 modifier = Modifier
41 .clickable { navController.navigate(Route.TransitionsExamples) }
42 )
43 ListItem(
44 text = { Text("View Pager") },
45 secondaryText = { Text("Syncing a Lottie animation with a view pager") },
46 modifier = Modifier
47 .clickable { navController.navigate(Route.ViewPagerExample) }
48 )
49 ListItem(
50 text = { Text("Network Animations") },
51 secondaryText = { Text("Loading animations from a url") },
52 modifier = Modifier
53 .clickable { navController.navigate(Route.NetworkExamples) }
54 )
55 ListItem(
56 text = { Text("Dynamic Properties") },
57 secondaryText = { Text("Setting dynamic properties") },
58 modifier = Modifier
59 .clickable { navController.navigate(Route.DynamicPropertiesExamples) }
60 )
61 ListItem(
62 text = { Text("Images") },
63 secondaryText = { Text("Using animations with images") },
64 modifier = Modifier
65 .clickable { navController.navigate(Route.ImagesExamples) }
66 )
67 ListItem(
68 text = { Text("Text") },
69 secondaryText = { Text("Using animations with text") },
70 modifier = Modifier
71 .clickable { navController.navigate(Route.TextExamples) }
72 )
73 ListItem(
74 text = { Text("ContentScale and Alignment") },
75 secondaryText = { Text("Changing an animation's ContentScale and Alignment") },
76 modifier = Modifier
77 .clickable { navController.navigate(Route.ContentScaleExamples) }
78 )
79 ListItem(
80 text = { Text("Caching") },
81 secondaryText = { Text("Interacting with Lottie's composition cache") },
82 modifier = Modifier
83 .clickable { navController.navigate(Route.CachingExamples) }
84 )
85 }
86 }