• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 }