HarmonyOS 鸿蒙Next ArkUI api9 金刚区的UI有类似组件或者思路不?
HarmonyOS 鸿蒙Next ArkUI api9 金刚区的UI有类似组件或者思路不?
/**
* 金刚区组件
*/
@Component
export struct NavigationKong {
public configData: ComponentAttribute;
private swiperController: SwiperController = new SwiperController()
private pageData:any = []
aboutToAppear(){
let pageSize: number = 10
let result = this.chunk(this.configData.data.config.list,pageSize)
this.pageData = result
console.log("result====>",result.length)
console.log("result====>this.pageData",this.pageData.length)
}
chunk(array, size) {
//获取数组的长度,如果你传入的不是数组,那么获取到的就是undefined
const length = array.length;
//判断不是数组,或者size没有设置,size小于1,就返回空数组
if (!length || !size || size < 1) {
return [];
}
let index = 0; //用来表示切割元素的范围start
let resIndex = 0; //用来递增表示输出数组的下标
//根据length和size算出输出数组的长度,并且创建它。
let result = new Array(Math.ceil(length / size));
//进行循环
while (index < length) {
//循环过程中设置result[0]和result[1]的值。该值根据array.slice切割得到。
result[resIndex++] = array.slice(index, (index += size));
}
return result;
}
build() {
Column() {
Swiper(this.swiperController) {
ForEach(this.pageData, (item: any) => {
Grid() {
ForEach(item, (dataItem: any) => {
GridItem(){
Column(){
Image(dataItem.imgUrl)
.width(42)
.height(42)
.onClick(() => {
})
Text(dataItem.navName)
.fontSize(16)
.textAlign(TextAlign.Center)
}
}
}, dataItem => dataItem.navName)
}
.columnsTemplate('1fr 1fr 1fr 1fr 1fr')
.maxCount(5)
.columnsGap(10)
.rowsGap(10)
.width('100%')
.backgroundColor(0xFAEEE0)
}, item => item)
}
.index(0)
.autoPlay(true)
.indicator(true)
.loop(true)
.itemSpace(0)
.curve(Curve.Linear)
.onChange((index: number) => {
console.info(index.toString())
})
}.width('100%')
}
}
class ComponentAttribute {
public data: any
}
目前我写的不太行啊,本来是有2页的,我输出的长度都是对的。但就是有问题,不知道这种UI有组件么?
更多关于HarmonyOS 鸿蒙Next ArkUI api9 金刚区的UI有类似组件或者思路不?的实战教程也可以访问 https://www.itying.com/category-93-b0.html
自我解决了。。。去掉for里面的item => item就OK了
更多关于HarmonyOS 鸿蒙Next ArkUI api9 金刚区的UI有类似组件或者思路不?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS的ArkUI API 9中,金刚区(Jin Gang Area)是一种常见的UI设计模式,通常用于展示核心功能或快捷入口。ArkUI提供了多种组件和布局方式来实现类似金刚区的UI效果。
-
Grid组件:ArkUI的Grid组件可以用于创建类似金刚区的布局。Grid允许你定义行和列,将多个子组件按照网格形式排列。可以通过设置Grid的行列数、间距等属性来调整布局,使其符合金刚区的设计需求。
-
Flex布局:ArkUI的Flex布局也是一种常用的布局方式,可以通过设置
justifyContent
和alignItems
属性来实现灵活的子组件排列。Flex布局适合用于金刚区中的动态内容排列,尤其是当金刚区的功能入口数量不固定时。 -
Stack组件:Stack组件允许子组件堆叠在一起,可以通过设置
position
属性来控制子组件的位置。Stack组件可以用于在金刚区中实现一些特殊的视觉效果,如图标与文字的叠加。 -
List组件:虽然List组件主要用于展示列表数据,但通过自定义列表项的布局,也可以实现类似金刚区的效果。例如,可以将多个功能入口作为列表项展示,并通过设置列表项的样式来模拟金刚区的布局。
-
自定义组件:如果ArkUI提供的标准组件无法完全满足需求,开发者可以基于这些组件进行封装,创建自定义组件。通过自定义组件,可以实现更加复杂和灵活的金刚区UI效果。
总的来说,ArkUI API 9提供了多种组件和布局方式,开发者可以根据具体需求选择合适的组件来实现类似金刚区的UI设计。通过组合和自定义这些组件,可以创建出符合设计要求的金刚区界面。