Jetpack:015-Jetpack的是脚手架

news2024/12/19 3:59:36

文章目录

  • 1. 概念介绍
  • 2. 使用方法
    • 2.1 核心思想
    • 2.2 具体内容
  • 3. 示例代码
  • 4. 内容总结

我们在上一章回中介绍了Jetpack中小红点相关的内容,本章回中将介绍 脚手架。闲话休提,让我们一起Talk Android Jetpack吧!

1. 概念介绍

我们在本章回中介绍的脚手架是指程序的框架,准确的说是指程序中某个页面的框架,它提供了页面的标题栏,页面主体和页面底部导航栏,这些都是一个页面的主要内容,在Jetpack库中,通过可组合函数Scaffold来实现脚手架。本章回中将详细介绍该函数的使用方法。

2. 使用方法

2.1 核心思想

可组合函数Scaffold可以看作是一种布局,它在布局中提供了槽位,这些槽位用来存放页面中主要的内容,比如标题栏。槽位在布局中的位置则由脚手架控制,开发人员不需要关于槽位的具体位置和布局,只需要把与槽位相关的内容添加到槽位就可以。

2.2 具体内容

可组合函数Scaffold提供了相关的参数,这些参数可以当作槽位,开发人员给这些参数赋值相当于在槽位中添加内容,下面我们将介绍该函数中常用的参数:

  • topBar参数: 主要用来存放标题栏相关的内容;
  • bottomBar参数:主要用来存放底部导航栏相关的内容;
  • snackbarHost参数:主要用来存放底部通知相关的内容;
  • floatingActionButton参数:主要用来存放浮动按钮;
  • floatingActionButtonPosition参数:主要用来控制浮动按钮的位置;
  • content参数:主要用来存放页面主体相关的内容,通常嵌套其它的布局函数;

上面介绍的这些函数中除了floatingActionButtonPosition参数外,其它的参数都是可组合函数类型(@Composable () -> Unit = {}),脚手架就是通过这些可组合函数实现槽位的。

此外,content参数比较特殊,它是Scaffold函数的最后一个参数,按照尾lambda的语法,可以把该参数的内容移动到函数体内,因此我们可以在Scaffold函数体内添加页面主体的内容。

3. 示例代码

Scaffold(
    topBar = { customCenterAppBar()},

    bottomBar = { customBottomBar() },

    //控制FAB的位置,只有两种
    floatingActionButtonPosition = FabPosition.End,
) {innerPadding->
    Column(modifier = Modifier
        .padding(innerPadding)
        .fillMaxSize()
        .background(color = CusColor)
    ) {
        Text(text = "hello")
    }
}

上面的示例代码中演示了Scaffold函数的参数以主这些函数对应的组合函数,不过我们没有列出各个组合函数的细节,因为我们在前面章回中介绍过这些组合函数,大家可以查看前面章回中的内容。

上面的示例代码中,我们在Scaffold函数体内添加了页面的主体部分,不过该主体比较简单,只有一个文本,下面是程序的运行效果图
在这里插入图片描述

4. 内容总结

最后,我们对本章回的内容做一个总结:

  • 脚手架提供了页面的框架,方便开发人员快速搭建页面;
  • 脚手架的核心思想是槽位布局,它控制了槽位的位置与布局,开发人员不需要关心这些细节;
  • 脚手架通过Scaffold可组合函数实现,该函数通过参数来实现脚手架的槽位;

看官们,关于Jetpack中脚手架相关的内容就介绍到这里,欢迎大家在评论区交流与讨论!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1121839.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【试题038】 逻辑与和赋值表达式例题

1.题目:设int n;,执行表达式(n2)&&(n1)&&(n0)后,n的值是? 2.代码分析: //设int n;,执行表达式(n2)&&(n1)&&(n0)后,n的值是? int main() {int n;printf("…

Java中的static关键字

一、static关键字的用途 在《Java编程思想》P86页有这样一段话: “static方法就是没有this的方法。在static方法内部不能调用非静态方法,反过来是可以的。而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法。这实际上正是s…

C语言 ——宽字符

前言: 过去C语⾔并不适合⾮英语国家(地区)使⽤。 C语⾔最初假定字符都是单字节的。但是这些假定并不是在世界的任何地⽅都适⽤。 C语⾔字符默认是采⽤ASCII编码的,ASCII字符集采⽤的是单字节编码,且只使⽤了单字节中…

YOLOv8改进实战 | 更换主干网络Backbone之2023最新模型LSKNet,旋转目标检测SOTA

前言 传统的YOLOv8系列中,Backbone采用的是较为复杂的C2f网络结构,这使得模型计算量大幅度的增加,检测速度较慢,应用受限,在某些真实的应用场景如移动或者嵌入式设备,如此大而复杂的模型时难以被应用的。为了解决这个问题,本章节通过采用LSKNet轻量化主干网络作为Backb…

【LangChain系列 11】Prompt模版——拼装组合

原文地址:【LangChain系列 11】Prompt模版——拼装组合 本文速读: 多prompt模版组合 单prompt模版拼装 在平常业务开发中,我们常常需要把一些公共模块提取出来作为一个独立的部分,然后将业务中去将这些模块进行组合。在LLM应用…

有哪些比较好用的协同办公软件

在疫情期间,协同办公大放异彩,解决了很多公司线上办公的问题,所以在后疫情时代,协同办公软件成为了提高工作效率和团队协作的重要工具。 随着科技的不断进步,越来越多的协同办公软件涌现出来。在本文中,我们…

YOLOv7-PTQ量化部署

目录 前言一、PTQ量化浅析二、YOLOv7模型训练1. 项目的克隆和必要的环境依赖1.1 项目的克隆1.2 项目代码结构整体介绍1.3 环境安装 2. 数据集和预训练权重的准备2.1 数据集2.2 预训练权重准备 3. 训练模型3.1 修改模型配置文件3.2 修改数据配置文件3.3 训练模型3.4 mAP测试 三、…

【数组】移除元素(暴力遍历×双指针√)

一、力扣题目链接 27.移除元素 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。 你不需要考虑数组中超出新长度后面的元素。 二、思路 要知道数组的元素在内存地址中是连续的,不…

Docker数据管理、端口映射、容器互联

目录 一、Docker 的数据管理: 1.数据卷: 1.1 宿主机目录/var/www/html 挂载到容器中的/data1: 1.2 测试: 2.数据卷容器: 2.1 创建一个容器作为数据卷容器: 2.2 挂载a1容器中的数据卷…

【Ubuntu18.04】Livox Tele-15使用教程

Livox Tele-15使用教程 引言1 下载并安装Livox Viewer1.1 打开Livox Viewer程序1.2 设备ip链接 2 览沃Livox SDK二次开发并封装ROS2.1 览沃Livox SDK安装2.2 览沃Livox livox_ros_driver 安装2.3 Launch 配置文件描述 3 保存lvx格式的数据文件3.1 使用览沃Viewer保存lvx文件3.2…

SD NAND对比TF卡优势(以CSNP4GCR01-AMW为例)

最近做的一个项目, 需要加大容量存储,这让我想到之前在做ARM的开发板使用的TF卡方案,但是TF卡需要携带卡槽的,但是有限的PCB板布局已经放不下卡槽的位置。 这个时候就需要那种能够不用卡槽,直接贴在板子上面&#xff0…

存储优化知识复习二详细版解析

存储优化 知识复习二 一、 选择题 1、 对数据库调优的方法中,最困难但是最有成效的是( )。 A、优化表的架构设计 B、添加内存 C、索引优化 D、查询语句优化 【参考答案】A2、 防止与处理死锁的方法有( )。 A、尽量避免或尽快处理阻塞 B、访…

ZKP5.2 PLONK IOP

ZKP学习笔记 ZK-Learning MOOC课程笔记 Lecture 5: The Plonk SNARK (Dan Boneh) 5.2 Proving properties of committed polynomials overview Polynomial equality testing with KZG KZG: determined commitment (if the function is equal, then the commitment is equa…

复习mysql中的事务

一个事务的开始和结尾必须是 start transaction | commit; rollback 事务特性 1.原子性:多个操作打包成一个整体,要么全部执行,要么一个都不执行。 不过这里的“一个都不执行”并不是真正的全不执行,只是看起来与没执行一样。…

会声会影2024有哪些新功能?好不好用

比如会声会影视频编辑软件,既加入光影、动态特效的滤镜效果,也提供了与色彩调整相关的LUT配置文件滤镜,可选择性大,运用起来更显灵活。会声会影在用户的陪伴下走过20余载,经过上百个版本的优化迭代,已将操作…

【数据科学赛】2023全球智能汽车AI挑战赛 #¥95000 #LLM文档问答 #视频理解

CompHub[1] 最新的比赛会第一时间在群里通知,欢迎加群交流比赛经验!(公众号回复“加群”即可) 以下内容由AI辅助生成,可能存在错误,可进入比赛主页[2]查看更多(文末阅读原文) 比赛主办方 吉利汽车集团、阿…

FreeRTOS学习day1

顾名思义 免费的实时操作系统 用法基本和Linux下的多线程编程类似 探索者开发版实验 动态创建4个任务start_task task1 task2 task3 优先级依次为1 2 3 4 (注意优先级不能为0,0是空闲任务) 我的理解:主线程start_task 主线程 task1 ta…

Linux线程--创建及等待

1.进程与线程 典型的UNIX/Linux进程可以看成只有一个控制线程:一个进程在同一时刻只做一件事情。有了多个控制线程后,在程序设计时可以把进程设计成在同一时刻做不止一件事,每个线程各自处理独立的任务。  线程是操作系统能够进行运算调度的…

Java File与IO流学习笔记

内存中存放的都是临时数据,但是在断电或者程序终止时都会丢失 而硬盘则可以长久存储数据,即使断电,程序终止,也不会丢失 File File是java.io.包下的类,File类的对象,用于代表当前操作系统的文件(可以是文…