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