前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >安卓软件开发:Jetpack Compose中常见的核心概念总结-7

安卓软件开发:Jetpack Compose中常见的核心概念总结-7

原创
作者头像
Nimyears
发布2024-11-07 08:46:49
发布2024-11-07 08:46:49
850
举报

31. Pager组件(类似ViewPager)

HorizontalPager - 横向分页

代码语言:kotlin
复制
val pagerState = rememberPagerState()

HorizontalPager(
    count = 5,
    state = pagerState
) { page ->
    Text("Page: $page", modifier = Modifier.fillMaxSize())
}
  • HorizontalPager: 实现类似ViewPager的横向分页效果。

VerticalPager - 纵向分页

代码语言:kotlin
复制
VerticalPager(
    count = 5,
    state = rememberPagerState()
) { page ->
    Text("Page: $page", modifier = Modifier.fillMaxSize())
}
  • VerticalPager: 实现纵向的分页效果。

32. 可交互的按钮和切换

ToggleButton - 切换按钮

代码语言:kotlin
复制
var toggled by remember { mutableStateOf(false) }

IconToggleButton(
    checked = toggled,
    onCheckedChange = { toggled = !toggled }
) {
    Icon(
        imageVector = if (toggled) Icons.Default.Favorite else Icons.Default.FavoriteBorder,
        contentDescription = "Favorite"
    )
}
  • IconToggleButton: 带有图标的切换按钮。

33. 图标和资源加载

Icons.Filled - 使用内置图标

代码语言:kotlin
复制
Icon(Icons.Filled.Home, contentDescription = "Home")

Load Image - 加载图片资源

代码语言:kotlin
复制
Image(
    painter = painterResource(id = R.drawable.sample_image),
    contentDescription = "Sample Image",
    modifier = Modifier.size(100.dp)
)

34. 自定义绘制

Canvas - 绘制图形

代码语言:kotlin
复制
Canvas(modifier = Modifier.size(100.dp)) {
    drawCircle(Color.Red, radius = size.minDimension / 2)
}
  • Canvas: 自定义绘制组件,支持绘制圆、矩形、路径等形状。

drawBehind Modifier - 在组件后绘制

代码语言:kotlin
复制
Text(
    "Draw Behind Example",
    modifier = Modifier
        .padding(16.dp)
        .drawBehind {
            drawRect(Color.Yellow)
        }
)
  • drawBehind: 在组件后方绘制背景图形。

35. 共享ViewModel

Shared ViewModel - 共享的ViewModel

代码语言:kotlin
复制
val viewModel: MyViewModel = viewModel()

viewModel.data.observeAsState().value?.let { data ->
    Text("Data: $data")
}
  • viewModel: 在Composable中获取ViewModel实例并共享数据。

36. Snackbars和Toasts

Snackbar - 显示临时消息

代码语言:kotlin
复制
val scaffoldState = rememberScaffoldState()

Scaffold(
    scaffoldState = scaffoldState
) {
    Button(onClick = {
        scaffoldState.snackbarHostState.showSnackbar("Hello Snackbar")
    }) {
        Text("Show Snackbar")
    }
}

Toast - 显示提示消息

代码语言:kotlin
复制
Toast.makeText(context, "Hello, World!", Toast.LENGTH_SHORT).show()

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 31. Pager组件(类似ViewPager)
    • HorizontalPager - 横向分页
    • VerticalPager - 纵向分页
  • 32. 可交互的按钮和切换
    • ToggleButton - 切换按钮
    • 33. 图标和资源加载
    • Icons.Filled - 使用内置图标
    • Load Image - 加载图片资源
  • 34. 自定义绘制
    • Canvas - 绘制图形
    • drawBehind Modifier - 在组件后绘制
  • 35. 共享ViewModel
    • Shared ViewModel - 共享的ViewModel
  • 36. Snackbars和Toasts
    • Snackbar - 显示临时消息
    • Toast - 显示提示消息
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档