1
+ package com.example.android.compose.motion.demo.visibility
2
+
3
+ import androidx.compose.animation.AnimatedVisibility
4
+ import androidx.compose.animation.fadeIn
5
+ import androidx.compose.animation.fadeOut
6
+ import androidx.compose.foundation.Image
7
+ import androidx.compose.foundation.layout.Box
8
+ import androidx.compose.foundation.layout.fillMaxSize
9
+ import androidx.compose.foundation.layout.padding
10
+ import androidx.compose.foundation.layout.size
11
+ import androidx.compose.foundation.shape.RoundedCornerShape
12
+ import androidx.compose.material3.Button
13
+ import androidx.compose.material3.Text
14
+ import androidx.compose.runtime.Composable
15
+ import androidx.compose.runtime.getValue
16
+ import androidx.compose.runtime.mutableStateOf
17
+ import androidx.compose.runtime.remember
18
+ import androidx.compose.runtime.setValue
19
+ import androidx.compose.ui.Alignment
20
+ import androidx.compose.ui.Modifier
21
+ import androidx.compose.ui.draw.clip
22
+ import androidx.compose.ui.layout.ContentScale
23
+ import androidx.compose.ui.res.painterResource
24
+ import androidx.compose.ui.tooling.preview.Preview
25
+ import androidx.compose.ui.unit.dp
26
+ import com.example.android.compose.motion.demo.CheeseImages
27
+
28
+ @Preview
29
+ @Composable
30
+ fun AnimatedVisibilityExample () {
31
+ var visible by remember {
32
+ mutableStateOf(true )
33
+ }
34
+ Box (modifier = Modifier .fillMaxSize()) {
35
+ AnimatedVisibility (visible,
36
+ modifier = Modifier .align(Alignment .Center ),
37
+ enter = fadeIn(),
38
+ exit = fadeOut()
39
+ ) {
40
+ Image (
41
+ painter = painterResource(id = CheeseImages [0 ]),
42
+ contentDescription = " Cheese" ,
43
+ modifier = Modifier
44
+ .size(256 .dp, 192 .dp)
45
+ .clip(shape = RoundedCornerShape (16 .dp)),
46
+ contentScale = ContentScale .Crop
47
+ )
48
+ }
49
+ Button (
50
+ onClick = { visible = ! visible },
51
+ modifier = Modifier
52
+ .align(Alignment .BottomCenter )
53
+ .padding(64 .dp)
54
+ ) {
55
+ Text (text = " TOGGLE VISIBILITY" )
56
+ }
57
+ }
58
+ }
0 commit comments