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

银川建立网站店铺在百度免费定位

银川建立网站,店铺在百度免费定位,互联网装修平台可靠吗,网站建设怎么做大家周末好呀,今天继续分享仓颉语言开发商城应用的实战教程,今天要做的是tabbar。 大家都知道ArkTs有Tabs和TabContent容器,能够实现上图的样式,满足基本的使用需求。而仓颉就不同了,它虽然也有这两个组件,…

大家周末好呀,今天继续分享仓颉语言开发商城应用的实战教程,今天要做的是tabbar。

大家都知道ArkTs有Tabs和TabContent容器,能够实现上图的样式,满足基本的使用需求。而仓颉就不同了,它虽然也有这两个组件,但是它的tabbar参数只支持传入图片或者文字,不能像ArkTs那样能传入组件,所以在仓颉语言中官方的tabbar局限性非常大。

给大家实操讲解一下,下面是一段Tabs的基本写法:

Tabs(BarPosition.End, this.controller){TabContent(){Text('页面1')}TabContent(){Text('页面2’)}
}

如果你要设置tabbar的样式,需要在TabContent下添加tabbar属性,然后你会发现tabbar只有唯二的两个参数:

TabContent(){Text('页面1')}.tabBar(icon: CJResource, text: CJResource)

设置完之后它长这样:

这样就无法满足我们的需求,所以我们需要自定义。

每一个tabbar元素都有一个图片组件和一个文字组件,我给它写出来:

Column {Image(item.selectIcon).width(28).height(28)Text(item.title).fontSize(15).fontColor(0xd84642).margin(top: 3)}

然后它需要有一个选中状态,难受的是仓颉不支持三元表达式,所以我只能写if语句:

Column {if(this.currenttabIndex == index){Image(item.selectIcon).width(28).height(28)Text(item.title).fontSize(15).fontColor(0xd84642).margin(top: 3)}else {Image(item.icon).width(28).height(28)Text(item.title).fontSize(15).fontColor(Color.GRAY).margin(top: 3)}}

它还需要一个点击事件:

Column {if(this.currenttabIndex == index){Image(item.selectIcon).width(28).height(28)Text(item.title).fontSize(15).fontColor(0xd84642).margin(top: 3)}else {Image(item.icon).width(28).height(28)Text(item.title).fontSize(15).fontColor(Color.GRAY).margin(top: 3)}}
.onClick({evet => this.currenttabIndex = index;this.controller.changeIndex(Int32(this.currenttabIndex))})

这样一个元素就写好了,接下来我只要循环添加几个元素,一个完整的tabbar就写好了,这里大家也要注意一下仓颉中foreach的写法:

Row {ForEach(this.tabList, itemGeneratorFunc: {item: TabItem, index: Int64 =>Column {if(this.currenttabIndex == index){Image(item.selectIcon).width(28).height(28)Text(item.title).fontSize(15).fontColor(0xd84642).margin(top: 3)}else {Image(item.icon).width(28).height(28)Text(item.title).fontSize(15).fontColor(Color.GRAY).margin(top: 3)}}.onClick({evet => this.currenttabIndex = index;this.controller.changeIndex(Int32(this.currenttabIndex))})})
}
.width(100.percent)
.height(60)
.alignItems(VerticalAlign.Center)
.justifyContent(FlexAlign.SpaceAround)

最后我们还是需要官方的Tabs容器来添加页面,你只要不设置tabbar属性底部导航栏区域就是空白的,正好把我们自定义的tabbar放上,下面是完整的示例代码:

let tabList: Array<TabItem> = [TabItem(@r(app.media.shop_tab_00), @r(app.media.shop_tab_01), '首页'),TabItem(@r(app.media.shop_tab_10), @r(app.media.shop_tab_11), '购物车'),TabItem(@r(app.media.shop_tab_20), @r(app.media.shop_tab_21), '我的')]
@State
var currenttabIndex:Int64 = 0Stack(Alignment.Bottom) {Tabs(BarPosition.End, this.controller){TabContent(){home()}TabContent(){shopcar()}TabContent(){mine()}}.barHeight(60).scrollable(false).animationDuration(0)Row {ForEach(this.tabList, itemGeneratorFunc: {item: TabItem, index: Int64 =>Column {if(this.currenttabIndex == index){Image(item.selectIcon).width(28).height(28)Text(item.title).fontSize(15).fontColor(0xd84642).margin(top: 3)}else {Image(item.icon).width(28).height(28)Text(item.title).fontSize(15).fontColor(Color.GRAY).margin(top: 3)}}.onClick({evet => this.currenttabIndex = index;this.controller.changeIndex(Int32(this.currenttabIndex))})})
}
.width(100.percent)
.height(60)
.alignItems(VerticalAlign.Center)
.justifyContent(FlexAlign.SpaceAround)
}

以上就是仓颉语言自定义tabbar的实现过程,感谢阅读。#HarmonyOS语言##仓颉##购物#

http://www.dtcms.com/wzjs/89783.html

相关文章:

  • 浙江企业响应式网站建设设计网站制作公司有哪些
  • 网站建设福建seo在线培训
  • wordpress搭建电商关键词排名优化公司哪家强
  • 济南香港国际网站建设产品软文是什么意思
  • 建设报名系统网站是真的么厦门seo全网营销
  • 西安做网站公司报价营销推广活动方案
  • 个人自制导航网站西安seo工作室
  • 网站做赌博做任务新出的app推广在哪找
  • 制造业人才网优化推广关键词
  • 在线视频网站开发成本广告公司业务推广
  • 天津网站建设制作设计官方百度app下载安装
  • 佛山中小企业网站制作合肥网站
  • 沈阳做网站优秀公司自己怎么优化我网站关键词
  • 批量优化网站软件重庆百度seo公司
  • 富阳网站建设seo服务外包价格
  • 网络营销策略定义快抖霸屏乐云seo
  • 用自己电脑做网站网络营销模式下品牌推广途径
  • 我想卖东西去哪个网站seo快速排名网站优化
  • 做网站需要的技术网站建设费用都选网络
  • 淘宝客做网站链接怎么优化自己网站
  • 杭州建设网站公司公司网站如何seo
  • 桂阳网站建设网络营销课程实训总结
  • 路得威网站谁做的第一推广网
  • 1688做网站费用最近的电脑培训班在哪里
  • 网站建设 岗位职责株洲24小时新闻
  • 青岛网站公司市场营销渠道
  • 做淘宝客为什么要做网站sem模型
  • 长沙企业宣传片制作公司谷歌seo教程
  • 品牌网站定制开发东莞seo管理
  • 美容视频视频网站建设打开百度网页