文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

JetpackCompose Scaffold组件如何使用

2023-07-04 23:07

关注

本文小编为大家详细介绍“JetpackCompose Scaffold组件如何使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“JetpackCompose Scaffold组件如何使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

搭设基本Scaffold页面

scaffold 组件遵循 Material Design,可以协助开发者迅速构建对应框架页面

准备工作

首先在 drawable 文件夹内,添加几张 vector images,用作我们的底部导航栏图标

JetpackCompose Scaffold组件如何使用

在主页面中声明数据类,表示单个图标以及其解释文本

data class Item(    val name: String,    val icon: Int)

新增组件 mainBody,逐一添加三个底部按钮的图标

@Composablefun mainBody() {    // 存储当前选中的底部按钮的状态    var selectedItem by remember {        mutableStateOf(0)    }    // 三个底部按钮    val items = listOf(        Item("主页", R.drawable.home),        Item("列表", R.drawable.list),        Item("设置", R.drawable.setting)    )    ...}

主体编写

首先是设置 topBar,即顶部导航栏对应按钮

代码很简单,但要注意使用的括号类型以及对应嵌套关系!

Scaffold(    topBar = {        TopAppBar(            title = { Text("主页") },            navigationIcon = {                IconButton(onClick = {  }) {                    Icon(Icons.Filled.Menu, null)                }            }        )    },    ...){}

紧接着在 topBar 属性后面写底部导航栏属性 bottomBar

items.forEachIndexed 按照索引渲染,vue 的 v-for 懂吧,就这个原理!

依次渲染 BottomNavigationItem 即可;

bottomBar = {    BottomNavigation {        items.forEachIndexed { index, item ->            BottomNavigationItem(                // selectedItem 是内置属性,表示当前选中的Item                // onClick即切换当前激活的Item                selected = selectedItem == index,                onClick = { selectedItem = index },                // 这几个属性看看英文就懂了,不解释                icon = { Icon(painterResource(item.icon), null) },                alwaysShowLabel = false,                label = { Text(item.name) }            )        }    }}

这是总体的代码:

@Composablefun mainBody() {    var selectedItem by remember {        mutableStateOf(0)    }    val items = listOf(        Item("主页", R.drawable.home),        Item("列表", R.drawable.list),        Item("设置", R.drawable.setting)    )    Scaffold(        topBar = {            TopAppBar(                title = { Text("主页") },                navigationIcon = {                    IconButton(onClick = {  }) {                        Icon(Icons.Filled.Menu, null)                    }                }            )        },        bottomBar = {            BottomNavigation {                items.forEachIndexed { index, item ->                    BottomNavigationItem(                        selected = selectedItem == index,                        onClick = { selectedItem = index },                        icon = { Icon(painterResource(item.icon), null) },                        alwaysShowLabel = false,                        label = { Text(item.name) }                    )                }            }        }    ) {        // 在scaffold里面塞一个box,糊弄一下        Box(            modifier = Modifier.fillMaxSize(),            contentAlignment = Alignment.Center        ) {            Text(text = "主页界面")        }    }}

JetpackCompose Scaffold组件如何使用

读到这里,这篇“JetpackCompose Scaffold组件如何使用”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯