鸿蒙开发超好用的 UI 组件和工具类库 BasicLibrary

大家好,我是 V 哥。你在学习HarmonyOS NEXT 开发吗,今天 V 哥给你推荐一款超好用的三方库BasicLibrary,BasicLibrary 是一个基于 API 11 封装的基本库,旨在提升鸿蒙开发效率。它包含了一些常用的 UI 组件和实用工具类,未来计划将其打造成一个通用的 UI 组件和基本工具组件库。

安装

要安装 BasicLibrary,可以使用以下命令:

ohpm install @peakmain/library

BasicLibrary 功能有哪些

先来看一下BasicLibrary都提供了哪些功能,一目了然。

案例演示

List 列表

先来看一个 List 列表,支持下拉刷新和加载更多。

1. 导入依赖
import { PkList } from '@peakmain/library/Index'
2. 参数

3. 看一个例子
import { NavBar, PkList } from '@peakmain/library/Index'@Entry
@Component
struct ListPage{@Statearr: String[] = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10']@Statepage: number = 1 // 第几页pageSize: number = 2 //共几页async getNewData(isRefresh:boolean){console.log("执行了getNewData..." + isRefresh)const tmp = await this.getData(isRefresh)if (isRefresh) {this.arr = tmp} else {this.arr.push(...tmp)}}getData(isRefresh:boolean){console.log("执行了getData..." + isRefresh)return new Promise<String[]>((resolve) => {let tmp: String[]setTimeout(() => {if (!isRefresh) {this.page++tmp = ['new_0', 'new_1', 'new_2', 'new_3', 'new_4', 'new_5']} else {this.page = 1tmp = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10']}console.log("当前页数:" + this.page)resolve(tmp); // 执行完成后调用 resolve}, 2000);});}@BuilderrenderItem(item: object){Column(){Text('' + item).width('100%').height(100).fontSize(16).textAlign(TextAlign.Center).borderRadius(10).backgroundColor(Color.White)}.margin({bottom: 10,left: 10, right: 10}).border({width: 0.5,color: Color.Red}).borderRadius(20)}build(){Column(){NavBar({title: "下拉刷新与加载更多"})PkList({dataSource: this.arr,finished: this.page >= this.pageSize,onRefresh: async () => {await this.getNewData(true)},renderItem: (item) => {this.renderItem(item)},onLoad: async () => {await this.getNewData(false)}}).margin({bottom: 20})}}
}

Skeleton骨架屏

用于在内容加载过程中展示一组占位图形。

导入依赖
import {  PkSkeleton } from '@peakmain/library';
参数

示例代码
PkSkeleton({count: 3,showAvatar: this.showAvatar
})

权限工具类

导入依赖

import PermissionUtils from '@peakmain/library/src/main/ets/utils/PermissionUtils';

创建request对象

request: PermissionUtils = new PermissionUtils()

检查是否有权限
方法如下:

this.request.hasPermissions(权限数组)

示例如下

async checkPermission(){let result =await this.request.checkPermissions(['ohos.permission.LOCATION', "ohos.permission.APPROXIMATELY_LOCATION"])if (result) {promptAction.showToast({ message: "已授予位置权限" })}return result
}

请求权限

this.request.requestPermission(权限数组)

示例如下

 result = await this.request.requestPermission(['ohos.permission.LOCATION', "ohos.permission.APPROXIMATELY_LOCATION"])
if (result) {this.sLocation = truepromptAction.showToast({ message: "已授予位置权限" })
} else {this.sLocation = falsepromptAction.showToast({ message: "已拒绝位置权限" })
}

打开应用权限设置页面

this.request.openPermissionsInSystemSettings()

以上简单给大家做了个演示,BasicLibrary 的更多功能,可以详细参考文档哦。

gitee 上获取 BasicLibrary

在gitee 上搜索 peakmain/BasicLibrary,即可获取该组件的的全部内容。关注威哥爱编程,一起学鸿蒙开发呀。

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

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

相关文章

Java基础:面向对象编程8

1 Java 注解 1.1 概念 定义&#xff1a;注解&#xff08;Annotation&#xff09;是在 Java 1.5 时引入的概念&#xff0c;同 class 和 interface 一样&#xff0c;属于一种类型。作用&#xff1a;注解提供了一系列数据用来装饰程序代码&#xff08;类、方法、字段等&#xff…

git配置以及如何删除git

你努力学习和充实自己&#xff0c;除了提升自身的价值&#xff0c;最实际的是当遇到有喜欢的人和事的时候&#xff0c;除了一片真心&#xff0c;还有拿得出手的东西 作用 记录开发的历史&#xff0c;每次记录就是一个版本&#xff0c;而且可以回到历史的某个版本可以实现多人合…

浅谈普通学历编码学生代码编程之路--24程序员节

#1024程序员节 | 征文# 今夕已是2024年&#xff0c;楼主是一名大四学生 &#xff0c;即将进入社会&#xff0c;曾经总是拿码农来开程序员的玩笑 &#xff0c;也是也是幻想着成为一名码农啊&#xff0c;先说说个人学习Java之路 &#xff0c;从步入大学开始就是主学Java&#xff…

【MyBatis】MyBatis缓存原理详解

目录 一、简介 二、缓存类介绍 2.1 PerpetualCache 2.2 LruCache 2.3 BlockingCache 三、CacheKey 3.1 总结&#xff1a;二级缓存命中条件 四、一级缓存 五、二级缓存 5.1 二级缓存如何组装这些装饰器&#xff1f;&#xff08;解析SQL映射文件中的标签&#xff0c;初…

2025青海选调生报名指南及照片要求

第一步&#xff1a;用户信息注册&#xff0c;仔细阅读公告内容 第二步&#xff1a;人脸识别认证、上传照片 第三步&#xff1a;确认基本信息、照片确认 第四步&#xff1a;填写报考信息&#xff0c;请务必于11月5日18:00前提交 第五步&#xff1a;打印报名表&#xff0c;下载《…

.net framework 3.5sp1插件怎么安装

以下是在不同操作系统电脑上安装.NET Framework 3.5 SP1 的几种常见方法&#xff1a; 一、Windows 10 及以上操作系统&#xff1a; 1.在线安装&#xff08;需要网络连接稳定&#xff09;&#xff1a; 按键盘上的 Windows 键&#xff0c;键入 “Windows 功能”&#xff0c;然…

Linux网络编程(五)-什么是TCP/IP协议族全面解读

1.什么是TCP/IP协议族 在了解TCP和UDP之前&#xff0c;我们先了解TCP/IP协议族&#xff0c;首先这个协议族的的由来&#xff0c;在一开始很多电脑表达一个消息的方法可谓是多种多样&#xff0c;因为它们运行着完全不同的操作系统&#xff0c;这就像有不同口音&#xff0c;说不…

【9712】基于springboot+vue的校园台球厅人员与设备管理系统

作者主页&#xff1a;Java码库 主营内容&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app等设计与开发。 收藏点赞不迷路 关注作者有好处 文末获取源码 项目描述 本次设计任务是要设计一个校园台球厅人员与设备管理系统…

基于java+springboot的大型超市数据处理系统

文章目录 前言技术介绍功能介绍核心代码数据库参考 系统效果图 前言 时代在飞速进步&#xff0c;每个行业都在努力发展现在先进技术&#xff0c;通过这些先进的技术来提高自己的水平和优势&#xff0c;大型超市数据处理系统当然不能排除在外。大型超市数据处理系统是在实际应用…

SpringBoot框架实战:打造宠物用品电商平台

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常…

SpringCloud之注册中心Consul使用详解

SpringCloud之注册中心Consul使用详解 在上个月我们知道 Eureka 2.X 遇到困难停止开发了&#xff0c;但其实对国内的用户影响甚小&#xff0c;一方面国内大都使用的是 Eureka 1.X 系列&#xff0c;另一方面 Spring Cloud 支持很多服务发现的软件&#xff0c;Eureka 只是其中之…

深入探索Python集合(Set)的高效应用:数据处理、性能优化与实际案例分析

文章目录 前言&#x1fa81;一、 定义集合1.1 使用大括号 {} 定义集合1.2 使用 set() 函数定义集合 &#x1fa81;二、添加元素2.1 使用 add() 方法2.2 使用 update() 方法 &#x1fa81;三、移除元素3.1 使用 remove() 方法3.2 使用 discard() 方法3.3 使用 pop() 方法3.4 使用…

【氮化镓】低温对p-GaN HEMT迁移率、阈值电压和亚阈值摆幅的影响

本期分享一篇低温对p-GaN HEMT 迁移率、阈值电压和亚阈值摆幅影响进行表征和建模的研究论文。文章作者Shivendra Kumar Singh、Thien Sao Ngo、Tian-Li Wu(通讯作者)和Yogesh Singh Chauhan,分别来资源中国台湾阳明交通大学国际半导体技术学院、印度理工学院坎普尔分校电气工…

缓存常见问题:缓存穿透、雪崩、击穿及解决方案分析

1. 什么是缓存穿透&#xff0c;怎么解决&#xff1f; 缓存穿透是指用户请求的数据在缓存中不存在即没有命中&#xff0c;同时在数据库中也不存在&#xff0c;导致用户每次请求该数据都要去数据库中查询一遍。如果有恶意攻击者不断请求系统中不存在的数据&#xff0c;会导致短时…

西南交通大学计算机软件专业上岸难度分析

C哥专业提供——计软考研院校选择分析专业课备考指南规划 西南交通大学计算机科学与技术2024届考研难度整体呈现"稳中有升"的态势。学硕实际录取33人&#xff0c;复试分数线362分&#xff0c;复试录取率71.74%&#xff1b;专硕&#xff08;计算机技术&#xff09;实际…

【数据结构笔记】408二叉树、堆、AVL、图、拓扑排序

文章目录 堆和二叉树一、定义与性质二、结构特点三、应用场景四、查找效率解释荷兰围棋问题拓扑排序的树 逆拓扑排序邻接表的存储 二叉树、二叉平衡树、图刷题笔记 堆和二叉排序树是数据结构中两种不同的树状结构&#xff0c;它们之间存在显著的区别。以下是对这两种数据结构的…

通过SSH远端免密登录执行脚本,修改最新5分钟生成文件权限

通过SSH远端免密登录执行脚本&#xff0c;修改最新5分钟生成文件权限 一、准备工作二、脚本内容三、使用脚本四、注意事项 在日常的系统管理中&#xff0c;经常需要对远程服务器上的文件进行操作。本文将介绍如何通过SSH远端免密登录&#xff0c;执行一个脚本来查找某目录下最新…

半导体材料ERP系统在生产计划管理方面的应用

在科技日新月异的今天&#xff0c;半导体材料作为信息技术的基石&#xff0c;其生产效率与质量管理直接关系到整个产业链的竞争力。为了精准把控生产流程&#xff0c;优化资源配置&#xff0c;半导体行业正积极引入高科技的ERP(企业资源计划)系统&#xff0c;特别是在生产计划管…

关于vue3中如何实现多个v-model的自定义组件

实现自定义组件<User v-model"userInfo" v-model:gender"gender"></User> User组件中更改数据可以同步更改父组件中的数据&#xff1a; 1 父组件&#xff1a; <User v-model"userInfo" v-model:gender"gender">&…

LabVIEW程序员可以从哪几个方面提升自己?有没有详细的路线图?

作为一名LabVIEW程序员&#xff0c;要在快速发展的技术领域保持竞争力并不断提升自己&#xff0c;需要从多个方面进行持续的学习和实践。下面我将为你详细说明LabVIEW程序员提升自己的几个关键方向&#xff0c;并给出具体的成长路线图。 1. 夯实基础&#xff1a;掌握LabVIEW的…