【JetCompose】入门教程实战基础案例01之显隐动画

任务

实现一个文字显示隐藏的动画

效果预览

图文混排组件

核心组件代码

js 复制代码
@Composable
fun JetpackCompose(modifier: Modifier = Modifier){
    Card(modifier = modifier) {
        var expaned by remember { mutableStateOf(false) }
        Column(verticalArrangement = Arrangement.Center,
            horizontalAlignment = Alignment.CenterHorizontally,
            modifier = Modifier.padding(all = 16.dp).clickable {
                expaned = !expaned
            }
            ) {
            Image(
                painter = painterResource(id = R.drawable.avatar),
                contentDescription = null,
                modifier = Modifier.padding(all = 8.dp).clip(CircleShape)
            )
           AnimatedVisibility(expaned) {
               Text(text = "Hello World", style = MaterialTheme.typography.bodyLarge)
           }
        }
    }
}

组件预览

js 复制代码
@Preview
@Composable
fun PreviewJetpackCompose(){
    MyJetCompomApp01Theme {
        JetpackCompose()
    }
}

完整实现

js 复制代码
class MainActivity05 : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        enableEdgeToEdge()
        setContent {
            MyJetCompomApp01Theme {
                Scaffold(modifier = Modifier.fillMaxSize()) { innerPadding ->
                    JetpackCompose(
                        modifier = Modifier.padding(innerPadding)
                    )
                }
            }
        }
    }
}

@Composable
fun JetpackCompose(modifier: Modifier = Modifier){
    Card(modifier = modifier) {
        var expaned by remember { mutableStateOf(false) }
        Column(verticalArrangement = Arrangement.Center,
            horizontalAlignment = Alignment.CenterHorizontally,
            modifier = Modifier.padding(all = 16.dp).clickable {
                expaned = !expaned
            }
            ) {
            Image(
                painter = painterResource(id = R.drawable.avatar),
                contentDescription = null,
                modifier = Modifier.padding(all = 8.dp).clip(CircleShape)
            )
           AnimatedVisibility(expaned) {
               Text(text = "Hello World", style = MaterialTheme.typography.bodyLarge)
           }
        }
    }
}

@Preview
@Composable
fun PreviewJetpackCompose(){
    MyJetCompomApp01Theme {
        JetpackCompose()
    }
}
相关推荐
JohnnyDeng941 天前
【Android】Hilt 依赖注入:原理与最佳实践
android·kotlin·mvvm·hilt
星间都市山脉1 天前
Android STS(Security Test Suite)完整介绍与测试流程
android·java·linux·windows·ubuntu·android studio·androidx
Yeyu1 天前
你真的了解AIDL吗? 附:AIDL 与 Binder 交互全解析
android
dualven_in_csdn1 天前
一键起飞调用示例
android·java·javascript
故渊at1 天前
第十板块:Android 系统稳定性与调试 | 第二十五篇:Watchdog 与 ANR 的系统级监控
android·watchdog·系统稳定性·anr·超时监控
故渊at1 天前
第十板块:Android 系统稳定性与调试 | 第二十六篇:Systrace 与 Perfetto 的系统级性能分析
android·perfetto·性能分析·systrace·系统稳定性
吕工-老船长19981 天前
20260610----S905Y5(Android14)-----连接网络自动更新时间,时间设置为24小时
android
杉氧1 天前
Kotlin 协程深度解析④:架构实战——在 MVVM/MVI 中的进阶应用
android·kotlin
Ab_stupid1 天前
CTF-Android培训笔记
android·笔记