大家好,我是 V 哥。你在学习HarmonyOS NEXT 开发吗,今天 V 哥给你推荐一款超好用的三方库BasicLibrary,BasicLibrary 是一个基于 API 11 封装的基本库,旨在提升鸿蒙开发效率。它包含了一些常用的 UI 组件和实用工具类,未来计划将其打造成一个通用的 UI 组件和基本工具组件库。
安装
要安装 BasicLibrary,可以使用以下命令:
bash
ohpm install @peakmain/library
BasicLibrary 功能有哪些
先来看一下BasicLibrary都提供了哪些功能,一目了然。
案例演示
List 列表
先来看一个 List 列表,支持下拉刷新和加载更多。
1. 导入依赖
javascript
import { PkList } from '@peakmain/library/Index'
2. 参数
3. 看一个例子
typescript
import { NavBar, PkList } from '@peakmain/library/Index'
@Entry
@Component
struct ListPage{
@State
arr: String[] = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10']
@State
page: 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 = 1
tmp = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10']
}
console.log("当前页数:" + this.page)
resolve(tmp); // 执行完成后调用 resolve
}, 2000);
});
}
@Builder
renderItem(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骨架屏
用于在内容加载过程中展示一组占位图形。
导入依赖
typescript
import { PkSkeleton } from '@peakmain/library';
参数
示例代码
typescript
PkSkeleton({
count: 3,
showAvatar: this.showAvatar
})
权限工具类
导入依赖
typescript
import PermissionUtils from '@peakmain/library/src/main/ets/utils/PermissionUtils';
创建request对象
typescript
request: PermissionUtils = new PermissionUtils()
检查是否有权限
方法如下:
typescript
this.request.hasPermissions(权限数组)
示例如下
typescript
async checkPermission(){
let result =
await this.request.checkPermissions(['ohos.permission.LOCATION', "ohos.permission.APPROXIMATELY_LOCATION"])
if (result) {
promptAction.showToast({ message: "已授予位置权限" })
}
return result
}
请求权限
typescript
this.request.requestPermission(权限数组)
示例如下
typescript
result = await this.request.requestPermission(['ohos.permission.LOCATION', "ohos.permission.APPROXIMATELY_LOCATION"])
if (result) {
this.sLocation = true
promptAction.showToast({ message: "已授予位置权限" })
} else {
this.sLocation = false
promptAction.showToast({ message: "已拒绝位置权限" })
}
打开应用权限设置页面
typescript
this.request.openPermissionsInSystemSettings()
以上简单给大家做了个演示,BasicLibrary 的更多功能,可以详细参考文档哦。
gitee 上获取 BasicLibrary
在gitee 上搜索 peakmain/BasicLibrary,即可获取该组件的的全部内容。关注威哥爱编程,一起学鸿蒙开发呀。