当前位置: 首页 > news >正文

HarmonyOS:ComposeTitleBar 组件自学指南

在日常的鸿蒙应用开发工作中,我们常常会面临构建美观且功能实用的用户界面的挑战。而标题栏作为应用界面的重要组成部分,它不仅承载着展示页面关键信息的重任,还能为用户提供便捷的操作入口。最近在参与的一个项目里,我就深深体会到了选择合适的标题栏组件对于提升用户体验的关键作用。当时,团队对于标题栏有着多样化的需求,既要简洁明了地呈现页面主题,又要能灵活地配置菜单选项以满足不同场景下的交互操作。在探索的过程中,我发现了 ComposeTitleBar 组件,经过一番深入钻研与实践,成功地将其运用到项目中,显著优化了界面效果。为了帮助更多开发者少走弯路,快速掌握这个强大的组件,我决定写下这篇自学指南,分享我在学习与使用过程中的经验与心得。

一、组件初相识

ComposeTitleBar 组件从 API Version 10 开始支持,这意味着只要你的开发环境适配该版本及以上,就能引入并使用它。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本,所以大家在学习和使用时,一定要留意版本差异,以便充分利用组件的最新特性。

二、导入模块

要使用 ComposeTitleBar 组件,首先需要正确导入相关模块:

import { ComposeTitleBar } from '@kit.ArkUI'

这里简洁明了地从指定的 ArkUI 工具包中引入了 ComposeTitleBar 组件,这是使用该组件的第一步,也是后续构建标题栏功能的基础。

三、子组件

值得注意的是,ComposeTitleBar 组件没有子组件,它自身就具备相对独立且完善的功能结构,专注于标题栏的呈现与交互。

四、属性详解

  1. 不支持通用属性:这一点需要牢记,在使用时不能按照常规组件的通用属性思维来配置它,而是要依据其特定的属性规则。
  2. ComposeTitleBar 构造函数:
    • ComposeTitleBar({item?: ComposeTitleBarMenuItem, title: ResourceStr, subtitle?: ResourceStr, menuItems?: Array<ComposeTitleBarMenuItem>})
    • 装饰器类型:@Component,这表明它遵循组件的基本构建规范,方便在鸿蒙应用的组件体系中进行整合。
    • 元服务 API:从 API version 11 开始,该接口支持在元服务中使用,拓展了其应用场景,让开发者可以在元服务开发中也能借助该组件打造专业的标题栏。
    • 系统能力:SystemCapability.ArkUI.ArkUI.Full,意味着需要系统具备相应的 ArkUI 完整能力支持,在开发环境搭建与适配时要确保满足这一条件。
    • 具体属性:
      • item:类型为 ComposeTitleBarMenuItem,可选。它用于左侧头像的单个菜单项目,为标题栏的左侧交互区域提供定制化功能,比如可以设置头像点击后的动作、显示样式等。
      • title:类型为 ResourceStr,必填。这是标题栏最核心的展示内容,用于清晰地告知用户当前页面的主题,需要根据页面功能准确填写。
      • subtitle:类型为 ResourceStr,可选。作为标题的补充信息,能进一步细化页面的描述,提升信息传达的完整性,在一些需要详细说明的页面场景中十分实用。
      • menuItems:类型为 Array<ComposeTitleBarMenuItem>,可选。它是右侧菜单项目列表,通过配置多个菜单项,可以为用户提供一系列操作选择,极大地增强了标题栏的交互性。
    • 入参对象不可为 undefined:即 ComposeTitleBar(undefined) 这种写法是错误的,确保在使用组件时传入正确且有效的参数值。
  3. ComposeTitleBarMenuItem:
    • 系统能力:同样依赖 SystemCapability.ArkUI.ArkUI.Full
    • 具体属性:
      • value:类型为 ResourceStr,必填。它代表图标资源,用于在菜单中显示直观的图标,让用户一眼就能识别操作含义,提升交互效率。
      • label13+:类型为 ResourceStr,从 API version 13 开始支持在元服务中使用,可选。它为图标提供标签描述,在一些图标表意不够清晰或者需要辅助说明的情况下,能帮助用户更好地理解操作功能,特别是对于无障碍访问场景尤为重要。
      • isEnabled:类型为 boolean,可选,默认禁用。用于控制菜单项是否可用,当 isEnabled 为 true 时表示启用,用户可以点击触发相应操作;为 false 时表示禁用,避免用户误操作或者在特定场景下限制某些功能的使用。需要注意的是,item 属性不支持触发 isEnabled 属性。
      • action:类型为 () => void,可选。它是触发时的动作闭包,定义了用户点击菜单项后要执行的操作,比如弹出提示框、跳转页面等。同样,item 属性不支持触发 action 事件。

五、事件

ComposeTitleBar 组件不支持通用事件,这就要求我们在开发过程中,充分利用其提供的属性配置来实现交互逻辑,而不是依赖传统的通用事件监听方式。

六、示例剖析与实践拓展

下面让我们深入研究给定的示例,理解如何将这些知识转化为实际的界面构建。
示例实现了简单的标题栏,带有返回箭头的标题栏和带有右侧菜单项目列表的标题栏。

import { ComposeTitleBar, promptAction, ComposeTitleBarMenuItem } from '@kit.ArkUI'@Entry
@Component
struct Index {//定义右侧菜单项目列表private menuItems: Array<ComposeTitleBarMenuItem> = [{//菜单图片资源value: $r('app.media.ic_public_save'),//启用图标isEnabled: true,//点击菜单时触发事件action: () => promptAction.showToast({ message: "保存成功" })},{value: $r('app.media.ic_public_reduce'),isEnabled: true,action: () => promptAction.showToast({ message: "缩小操作" })},{value: $r('app.media.ic_public_edit'),isEnabled: true,action: () => promptAction.showToast({ message: "进入编辑模式" })},{value: $r('app.media.ic_public_remove'),isEnabled: true,action: () => promptAction.showToast({ message: "删除操作" })},]build() {Row() {Column() {//分割线Divider().height(2).color(0xCCCCCC)ComposeTitleBar({title: "精彩资讯页面",subtitle: "每日最新动态",menuItems: this.menuItems.slice(0, 1),})Divider().height(2).color(0xCCCCCC)ComposeTitleBar({title: "个人中心",subtitle: "管理您的账户",menuItems: this.menuItems.slice(0, 2),})Divider().height(2).color(0xCCCCCC)ComposeTitleBar({title: "设置",subtitle: "个性化配置",menuItems: this.menuItems,})Divider().height(2).color(0xCCCCCC)//定义带头像的标题栏ComposeTitleBar({menuItems: [{ isEnabled: true, value: $r('app.media.ic_public_save'),action: () => promptAction.showToast({ message: "收藏成功" })}],title: "收藏夹",subtitle: "您的专属收藏",item: { isEnabled: true, value: $r('app.media.app_icon') }})Divider().height(2).color(0xCCCCCC)}}.height('100%')}
}

在这个示例中:

  • 首先,我们导入了必要的模块,包括 ComposeTitleBar、promptAction(用于弹出提示信息)以及 ComposeTitleBarMenuItem。
  • 接着,定义了一个私有的 menuItems 数组,其中包含了多个 ComposeTitleBarMenuItem 对象,每个对象详细配置了图标资源、是否启用以及点击后的动作,比如保存、编辑、删除等操作对应的提示信息,让用户在交互时有明确的反馈。
  • 在 build 方法中,通过 Row 和 Column 组件构建了页面布局结构,并在其中插入了多个 ComposeTitleBar 组件实例。每个实例根据不同的页面场景设置了独特的标题、副标题以及右侧菜单项目。例如,在 “精彩资讯页面” 标题栏,设置了简洁的标题和副标题,同时只展示了一个 “保存” 菜单选项;而在 “设置” 页面的标题栏,则完整展示了所有的菜单选项,满足用户对多样化操作的需求。对于带头像的标题栏,如 “收藏夹” 页面,不仅配置了头像的图标资源,还设置了头像点击后的收藏提示动作,丰富了标题栏的交互维度。

七、实践拓展建议

  1. 样式定制:可以尝试修改 Divider 的样式,如更改颜色为与应用主题更匹配的色调,或者调整高度以适应不同屏幕尺寸下的视觉效果。对于 ComposeTitleBar 本身,探索修改标题、副标题的字体大小、颜色,使其在不同页面有更突出的显示效果,增强信息可读性。
  2. 交互优化:在 action 闭包中,不仅仅局限于弹出提示框,可以实现页面跳转,比如点击 “编辑” 菜单跳转到编辑页面,或者与后端数据交互,实现实时保存用户在标题栏操作后的设置变更等复杂功能。
  3. 适配多设备:考虑不同设备屏幕尺寸,对于菜单选项的显示数量、布局进行动态调整,确保在手机、平板等设备上都能有良好的用户体验。例如,在平板上可以适当增加菜单选项的横向排列数量,充分利用大屏幕空间。

总之,ComposeTitleBar 组件为鸿蒙应用开发的标题栏构建提供了强大而便捷的解决方案。通过深入理解其属性、合理运用示例代码并积极实践拓展,相信大家都能快速上手,打造出满足各种需求的优质标题栏,提升应用的整体品质与用户满意度。

相关文章:

HarmonyOS:ComposeTitleBar 组件自学指南

在日常的鸿蒙应用开发工作中&#xff0c;我们常常会面临构建美观且功能实用的用户界面的挑战。而标题栏作为应用界面的重要组成部分&#xff0c;它不仅承载着展示页面关键信息的重任&#xff0c;还能为用户提供便捷的操作入口。最近在参与的一个项目里&#xff0c;我就深深体会…...

C# System.Net.Dns 使用详解

总目录 前言 在网络编程中&#xff0c;域名系统&#xff08;DNS&#xff09;是互联网的核心组成部分之一&#xff0c;它将人类可读的域名转换为机器可用的IP地址。在.NET框架中&#xff0c;System.Net.Dns类提供了一组静态方法&#xff0c;用于执行与DNS相关的操作。本文将详细…...

Spring-事务属性

1.隔离属性 数据库对于隔离属性的支持 隔离属性的值MySQLOracle ISOLATION.READ_COMMITTED √ √ ISOLATION.REPEATABLE_READ√ISOLATION.SERIALIZABLE√√ Oracle不支持REPEATABLE_READ值 如何解决不可重复度 采用的多版本比对的方式 解决不可重复读 默认隔离属性 ISO…...

“上云入端” 浪潮云剑指组织智能化落地“最后一公里”

进入2025年&#xff0c;行业智能体正在成为数实融合的核心路径。2025年初DeepSeek开源大模型的横空出世&#xff0c;通过算法优化与架构创新&#xff0c;显著降低算力需求与部署成本&#xff0c;推动大模型向端侧和边缘侧延伸。其开源策略打破技术垄断&#xff0c;结合边缘计算…...

Docker 的实质作用是什么

Docker 的实质作用是什么 目录 Docker 的实质作用是什么**1. Docker 的实质作用****2. 为什么使用 Docker?****(1)解决环境一致性问题****(2)提升资源利用率****(3)简化部署与扩展****(4)加速开发与协作****3. 举例说明****总结**Docker 的实质是容器化平台,核心作用…...

WEB安全--文件上传漏洞--白名单绕过

一、MIME类型&#xff08;Content-Type&#xff09;绕过 原理&#xff1a;在我们不能绕过白名单后缀限制时&#xff0c;如果后端检测的是文件类型&#xff08;数据包中的Content-Type字段&#xff09;&#xff0c;那我们可以利用合法类型替换 示例&#xff1a;在上传,php后缀…...

Mac 本地化部署 dify

Macbook 本地化部署 dify 目录 Macbook 本地化部署 dify安装dockerdocker下载地址 安装dify下载dify到本地github可能遇到的问题: github打开超时在本地解压dify.zip文件本地化部署docker部署可能遇到的问题: 部署超时登录体验 dify 安装docker docker下载地址 根据电脑芯片选…...

MySQL和navicat日常使用记录

navicat界面上之前跟localhost连接的数据库可以直接点开了 这里有excel导入的地方 然后添加文件&#xff0c;选则文件是哪个&#xff0c;勾选excel的表是哪个&#xff0c;根据实际情况定义一些附加选项&#xff0c;注意时间格式&#xff0c;下一步下一步&#xff0c;然后选择主…...

linux进程信号 ─── linux第27课

在 Linux 系统中&#xff0c;信号&#xff08;Signals&#xff09; 是一种进程间通信&#xff08;IPC&#xff09;机制&#xff0c;用于通知进程发生了某种事件或请求进程执行特定操作。 你怎么能识别信号呢&#xff1f;识别信号是内置的&#xff0c;进程识别信号&#xff0c;是…...

云安全之k8s未授权漏洞总结

一、k8s介绍 全称是 kubernetes&#xff0c;是谷歌在2014年推出的一种开源容器编排系统&#xff0c;后来捐赠给了云原生计算基金会&#xff08;CNCF&#xff09;。因将k后面的8个字母进行缩写后&#xff0c;被广泛简称为K8s。随着容器技术的发展&#xff0c;面临着容器数量庞大…...

博客学术汇测试报告

Author&#xff1a;MTingle major:人工智能 Build your hopes like a tower! 目录 一.项目简介 二.开发技术 三.测试用例设计 四.自动化测试代码 common包 博客编辑 博客列表 登录页面 未登录测试 主函数 五.性能测试 六.测试总结 一.项目简介 该项目是一款基于 S…...

揭秘:父子组件之间的传递

基础知识 组件与组件之间有三大方面的知识点&#xff1a; 子组件通过props defineProps&#xff08;{}&#xff09;接收父组件传递到参数和方法&#xff1b;子组件可以通过定义 emit 事件&#xff0c;向父组件发送事件&#xff1b;父组件调用子组件通过defineExpose 导出的方法…...

leetcode 169.Majority Element

这道题虽然简单&#xff0c;但适合用来练习各种解法。《剑指offer》5.2节 面试题29与此题一样&#xff0c;并且给出了leetcode官方题解未给出的快速选择的解法。 方法一、用哈希表解决 class Solution { public:int majorityElement(vector<int>& nums) {unordered…...

魔改chromium——基础环境搭建

谷歌chromium环境要求详细文档 软件和环境要求&#xff0c;必须安装&#xff0c;硬性要求 系统环境&#xff1a;Windows 10&#xff0c;内存最小8GB&#xff0c;推荐16GB&#xff0c;NTFS格式磁盘最少100GB空间Git版本&#xff1a;安装最新版本即可&#xff0c;Git桌面端下载…...

[网络_1] 因特网 | 三种交换 | 拥塞 | 差错 | 流量控制

目录 一、网络、互连网与因特网 二、因特网发展 三、因特网的组成与功能 四、计算机网络的分类 五、因特网的标准化与意义 一、三种传输方式&#xff1a;电路交换 vs 报文交换 vs 分组交换 1. 电路交换&#xff08;Circuit Switching&#xff09;——像“打电话” 2. 报…...

android 何如查找内网设备 IP

前沿 最近在与嵌入式设备打交道,需要对设备进行配网。发现 UpnP 服务不稳定,经常收不到设备的信息。就想着能不能通过内网查找到 IP 后,直接与设备通信,不停的请求设备信息。 1.Android 端通过 UDP 组播(Multicast)查找设备 如果嵌入式设备支持 UDP 组播,Android 端可…...

Oracle数据库数据编程SQL<3.5 PL/SQL 存储过程(Procedure)>

存储过程(Stored Procedure)是 Oracle 数据库中一组预编译的 PL/SQL 语句集合&#xff0c;存储在数据库中并可通过名称调用执行。它们是企业级数据库应用开发的核心组件。 目录 一、存储过程基础 1. 存储过程特点 2. 创建基本语法 3. 存储过程优点 4. 简单示例 二、没有…...

六级词汇量积累day13

commend 表扬 exhaust 耗尽&#xff0c;用尽 weary 疲惫的&#xff0c;劳累的 fatigue 疲惫&#xff0c;劳累 obese 臃肿的&#xff0c;肥胖的 adopt 采纳&#xff0c;收养 adapt 适应 accomplish 完成&#xff0c;实现 accomplishment 成就 achieve 实现&#xff0c;完成 achi…...

蓝桥杯15届JAVA_A组

将所有1x1转化为2x2 即1x1的方块➗4 然后计算平方数 记得-1 2 import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter;public class Main{static BufferedReader in new BufferedReader(new In…...

OpenCV图像输入输出模块imgcodecs(imwrite函数的用法)

《OpenCV计算机视觉开发实践&#xff1a;基于Python&#xff08;人工智能技术丛书&#xff09;》(朱文伟&#xff0c;李建英)【摘要 书评 试读】- 京东图书 3.2.3 imwrite保存图片 函数imwrite可以用来输出图像到文件&#xff0c;其声明如下&#xff1a; imwrite(filename,…...

win 远程 ubuntu 服务器 安装图形界面

远程结果&#xff1a;无法使用docker环境使用此方法 注意要写IP和:数字 在 ubuntu 服务器上安装如下&#xff1a; # 安装 sudo apt-get install tightvncserver # 卸载 sudo apt purge tightvncserver sudo apt autoremove#安装缺失的字体包&#xff1a; sudo apt update s…...

地下管线三维建模软件工具MagicPipe3D V3.6.1

经纬管网建模系统MagicPipe3D&#xff0c;基于二维矢量管线管点数据本地离线参数化构建地下管网三维模型&#xff08;包括管道、接头、附属设施等&#xff09;&#xff0c;输出标准3DTiles、Obj模型等格式&#xff0c;支持Cesium、Unreal、Unity、Osg等引擎加载进行三维可视化、…...

vue子组件生命周期的执行顺序

在 Vue 中&#xff0c;子组件的生命周期钩子函数的执行顺序受父组件的影响&#xff0c;通常遵循**“先创建子组件&#xff0c;后创建父组件&#xff1b;先销毁父组件&#xff0c;后销毁子组件”**的原则。 1. 组件创建&#xff08;挂载&#xff09;阶段 当父组件挂载时&#x…...

【含文档+PPT+源码】基于微信小程序的在线考试与选课教学辅助系统

项目介绍 本课程演示的是一款基于微信小程序的在线考试与选课教学辅助系统&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 1.包含&#xff1a;项目源码、项目文档、数据库脚本、软件工具等所有资料 2.带你从零开始部署运行本套系统…...

树莓派超全系列文档--(17)树莓派配置显示器

树莓派配置显示器 显示支持 HDMI 显示器设置分辨率和旋转手动设置分辨率和旋转确定显示设备名称设置自定义分辨率设置自定义旋转 控制台分辨率和旋转 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 显示 要配置 Raspberry Pi 使用非默认显示模式…...

python将pdf文件转为图片,如果pdf文件包含多页,将转化的多个图片通过垂直或者水平合并成一张图片

要将PDF文件转换为图片&#xff0c;并将多页PDF垂直合并成一张图片&#xff0c;可以使用PyMuPDF&#xff08;也称为fitz&#xff09;库来读取PDF文件&#xff0c;并使用Pillow库来处理和合并图片。以下是一个示例代码&#xff0c;展示了如何实现这个功能&#xff1a; 首先&…...

JVM基础原理

JVM是一个虚拟化的计算机&#xff0c;它可以执行Java字节码文件&#xff08;.class文件&#xff09;&#xff0c;实现Java程序跨平台的特性。JVM负责将Java程序的字节码翻译成具体操作系统的机器码&#xff0c;从而能够在不同的平台上运行。JVM的核心原理涉及以下几个重要方面 …...

Miniforge3高效管理 Python环境:2025年最新实践指南

Miniforge3 高效管理 Python 环境:2025 年最新实践指南 在现代开发中,灵活高效地管理 Python 环境至关重要。Miniforge3 作为一款轻量级 Conda 管理工具,不仅默认采用更新更快的 conda-forge 软件源,还对 ARM 架构(例如 Apple M1/M2/M3)有着出色的适配性。相比于传统的 …...

31天Python入门——第17天:初识面向对象

你好&#xff0c;我是安然无虞。 文章目录 面向对象编程1. 什么是面向对象2. 类(class)3. 类的实例关于self 4. 对象的初始化5. __str__6. 类之间的关系继承关系组合关系 7. 补充练习 面向对象编程 1. 什么是面向对象 面向对象编程是一种编程思想,它将现实世界的概念和关系映…...

困于环中的机器人

************* c topic: 1041. 困于环中的机器人 - 力扣&#xff08;LeetCode&#xff09; ************* Inspect the topic first. And it looks really familiar with another robot topic. 657. 机器人能否返回原点 - 力扣&#xff08;LeetCode&#xff09;https://lee…...

阿里 FunASR 开源中文语音识别大模型应用示例(准确率比faster-whisper高)

文章目录 Github官网简介模型安装非流式应用示例流式应用示例 Github https://github.com/modelscope/FunASR 官网 https://www.funasr.com/#/ 简介 FunASR是一个基础语音识别工具包&#xff0c;提供多种功能&#xff0c;包括语音识别&#xff08;ASR&#xff09;、语音端…...

spring boot前后端开发上传文件时报413(Request Entity Too Large)错误的可能原因及解决方案

可能原因及解决方案 1. Spring Boot默认文件大小限制 原因&#xff1a;Spring Boot默认单文件最大为1MB&#xff0c;总请求体限制为10MB。解决方案&#xff1a; 在application.properties中配置&#xff1a;spring.servlet.multipart.max-file-size10MB # 单文件最大 spring…...

Transformer:破局山地暴雨预测的「地形诅咒」--AI智能体开发与大语言模型的本地化部署、优化技术

极端降雨预测的技术痛点与边缘破局 1. 传统预警系统的三重瓶颈‌ ‌延迟致命‌&#xff1a;WRF模式在1km分辨率下3小时预报耗时>45分钟&#xff0c;错过山洪黄金响应期 ‌地形干扰大‌&#xff1a;复杂地形区&#xff08;如横断山脉&#xff09;降水预测误差超50% ‌数据…...

游戏引擎学习第187天

看起来观众解决了上次的bug 昨天遇到了一个相对困难的bug&#xff0c;可以说它相当棘手。刚开始的时候&#xff0c;没有立刻想到什么合适的解决办法&#xff0c;所以今天得从头开始&#xff0c;逐步验证之前的假设&#xff0c;收集足够的信息&#xff0c;逐一排查可能的原因&a…...

05-02-自考数据结构(20331)- 动态查找-知识点

自考数据结构动态查找算法主要讲二叉树和平衡二叉树,但是感觉到了,就又续接了一部分,所以这篇备考的小伙伴着重看前两种就可以了。 知识拓扑 知识点介绍 二叉排序树(BST) 定义 二叉排序树(Binary Search Tree)又称二叉查找树,它或者是一棵空树,或者是具有下列性质的二…...

PyQt6实例_批量下载pdf工具_使用pyinstaller与installForge打包成exe文件

目录 前置&#xff1a; 步骤&#xff1a; step one 准备好已开发完毕的项目代码 step two 安装pyinstaller step three 执行pyinstaller pdfdownload.py&#xff0c;获取初始.spec文件 step four 修改.spec文件&#xff0c;将data文件夹加入到打包程序中 step five 增加…...

NVR接入录像回放平台EasyCVR视频融合平台城市/乡镇污水处理厂解决方案

一、方案背景 随着经济的快速发展和城市化的加快&#xff0c;城市污水排放量急剧增加&#xff0c;给城市环境和粮食安全带来了威胁。因此&#xff0c;污水处理厂的建设和高效运营成为对城市环境保护的重要任务。 目前&#xff0c;国内许多城市虽已建成污水处理系统&#xff0…...

Vue2 vs Vue3 生命周期全面对比:created 的进化与革新!!!

&#x1f3af; Vue2 vs Vue3 生命周期全面对比&#xff1a;created 的进化与革新 &#x1f525; 核心差异全景图 一、钩子函数命名与定位变化 1. 命名规范革新 Vue2 钩子Vue3 钩子 (Options API)Vue3 Composition APIbeforeCreate❌ 无setup() 替代created✅ 保留setup() 替代…...

Ubuntu 22.04安装MongoDB:GLM4模型对话数据收集与微调教程

在Ubuntu 22.04安装MongoDB Community Edition的教程请点击下方链接进行参考&#xff1a; 点击这里获取MongoDB Community Edition安装教程 今天将为大家带来如何微调GLM4模型并连接数据库进行对话的教程。快跟着小编一起试试吧~ 1. 大模型 ChatGLM4 微调步骤 1.1 从 github…...

并查集(Union-Find Set)课程笔记

目录 1. 并查集原理 2. 并查集的实现 3. 并查集应用 应用 1&#xff1a;省份数量问题 应用 2&#xff1a;等式方程的可满足性 1. 并查集原理 并查集用于处理需要将不同元素划分成若干不相交集合的问题。最开始时&#xff0c;每个元素都是单独的一个集合&#xff0c;随后根…...

算法刷题记录——LeetCode篇(1.4) [第31~40题](持续更新)

更新时间&#xff1a;2025-03-29 算法题解目录汇总&#xff1a;算法刷题记录——题解目录汇总技术博客总目录&#xff1a;计算机技术系列博客——目录页 优先整理热门100及面试150&#xff0c;不定期持续更新&#xff0c;欢迎关注&#xff01; 32. 最长有效括号 给你一个只包…...

【区块链安全 | 第十四篇】类型之值类型(一)

文章目录 值类型布尔值整数运算符取模运算指数运算 定点数地址&#xff08;Address&#xff09;类型转换地址成员balance 和 transfersendcall&#xff0c;delegatecall 和 staticcallcode 和 codehash 合约类型&#xff08;Contract Types&#xff09;固定大小字节数组&#x…...

一款超级好用且开源免费的数据可视化工具——Superset

认识Superset 数字经济、数字化转型、大数据等等依旧是如今火热的领域&#xff0c;数据工作有一个重要的环节就是数据可视化。 看得见的数据才更有价值&#xff01; 现如今依旧有多数企业号称有多少多少数据&#xff0c;然而如果这些数据只是呆在冷冰冰的数据库或文件内则毫无…...

android gradle一直编译不下来,可能是打开了gradle离线模式

gradle离线模式 当然&#xff0c;如果本地已经将gradle&#xff0c;lib都下载下来了&#xff0c;也可以打开这个离线模式&#xff0c;不然重启AS的时候可能会重新走一次下载流程...

(C语言)学生信息表(学生管理系统)(基于通讯录改版)(正式版)(C语言项目)

1.首先是头文件&#xff1a; //student.h //头文件//防止头文件被重复包含#pragma once//宏定义符号常量&#xff0c;方便维护和修改 #define ID_MAX 20 #define NAME_MAX 20 #define AGE_MAX 5 #define SEX_MAX 5 #define CLA_MAX 20 //定义初始最大容量 #define MAX 1//定义结…...

【Linux】Linux 系统启动流程详解

1. BIOS/UEFI 阶段 硬件自检&#xff08;POST&#xff09; BIOS/UEFI 执行硬件检查&#xff08;内存、CPU、外设等&#xff09;。若硬件异常&#xff0c;通过蜂鸣码或屏幕提示错误。 选择启动设备 按配置顺序&#xff08;硬盘、U盘、网络等&#xff09;寻找可引导设备。BIOS&a…...

Jetson 设备卸载 OpenCV 4.5.4 并编译安装 OpenCV 4.2.0

‌一、卸载 OpenCV 4.5.4‌ 清除已安装的 OpenCV 库‌ sudo apt-get purge libopencv* python3-opencv # 卸载所有APT安装的OpenCV包‌:ml-citation{ref"1,3" data"citationList"}sudo apt autoremove # 清理残留依赖‌:ml-citation{ref"1,4"…...

【计算机网络】OSI七层模型完全指南:从比特流到应用交互的逐层拆解

OSI模型 导读一、概念二、模型层次结构2.1 物理层&#xff08;Physical Layer&#xff09;2.2 数据链路层&#xff08;Data Link Layer&#xff09;​2.3 ​网络层&#xff08;Network Layer&#xff09;​2.4 ​传输层&#xff08;Transport Layer&#xff09;​2.5 ​会话层&…...

渗透测试:登录页面的测试-弱口令思路和实战

渗透测试&#xff1a;登录页面的测试思路和实战 渗透测试&#xff08;Penetration Testing&#xff09;&#xff0c;也称为“渗透性测试”&#xff0c;是一种评估计算机系统、网络或Web应用安全性的一种方法。它通过模拟真实世界中的攻击手段和策略&#xff0c;来检测目标系统…...

Android BottomNavigationView 完全自定义指南:图标、文字颜色与选中状态

1. 核心功能概述 通过 Material Design 的 BottomNavigationView&#xff0c;你可以轻松实现以下自定义&#xff1a; ✅ 动态切换选中/默认图标 ✅ 自定义选中与默认文字颜色 ✅ 控制文字显示模式&#xff08;始终显示/仅选中显示/自动隐藏&#xff09; ✅ 添加动画和高级样…...