亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

鴻蒙Next倉頡語言開發實戰教程:設置頁面

標簽:
HarmonyOS

仓颉语言商城应用的页面开发教程接近尾声了,今天要分享的是设置页面:


https://img1.sycdn.imooc.com/7b128668094e72f710802331.jpg


导航栏还是老样式,介绍过很多次了,今天不再赘述。这个页面的内容主要还是介绍List容器的使用。


可以看出列表内容分为三组,所以我们要用到ListItemGroup,不过第一组是没有标题的,所以可以直接使用ListItem,布局很简单,具体代码如下:


ListItem{
    Row(8){
    Image(@r(app.media.chaofu))
    .width(60.vp)
    .height(60)
    .borderRadius(30)
        Column(20){
             Text('幽蓝计划')
            .fontSize(16)
            .fontColor(Color.BLACK)
            .fontWeight(FontWeight.Bold)
            Text('账号名: youlanjihua')
            .fontSize(13)
            .fontColor(Color.GRAY)
        }
        .alignItems(HorizontalAlign.Start)
 }
 .backgroundColor(Color.WHITE)
 .width(100.percent)
 .height(90.vp)
 .borderRadius(10)
 .onClick({evet =>
    })
}


下面的两组内容都是有标题的,实现方案我建议使用List容器的head,方法是先定义header组件,然后在ListItemGroup中引用,具体代码如下:


@Builder func itemHead(text:String) {
    Row{
        Text(text)
        .fontColor(Color.GRAY)
        .fontSize(13)
    }
    .width(100.percent)
    .height(35)
    .alignItems(VerticalAlign.Center)
    .padding(top:3,left:10)
}

ListItemGroup(ListItemGroupParams(header:{=>bind(this.itemHead,this)('账号设置')})){
	//列表内容
}


剩下的内容就是下面两组的内容部分了,可以看出它们几乎都是一样的,所以我们可以自定义组件来节省代码,再次介绍一下自定义组件的相关内容。首先创建新的文件,定义样式和需要的参数,以本文内容为例,具体代码是这样的:


@Component
public class setrow {
    @Prop var title:String
    @Prop var icon:CJResource
    @Prop var subTitle : String
    func build() {
        Row{
            Row{
                Image(icon)
                .width(20)
                .height(20)
                Text(title)
                .fontSize(15)
                .fontColor(0x4a4a4a)
                .margin(left:8)
            }
            Row(8){
                if(subTitle.size > 0){
                    Text(subTitle)
                    .fontColor(Color.GRAY)
                    .fontSize(12)
                }
                Image(@r(app.media.cjright))
                .width(20)
                .height(20)
            }
            .alignItems(VerticalAlign.Center)
        }
        .width(100.percent)
        .height(50)
        .justifyContent(FlexAlign.SpaceBetween)
        .backgroundColor(Color.WHITE)
        .padding(left:10,right:10)
    
    }
}


使用组件:


ListItem{
  setrow( title: '账户与安全', icon: @r(app.media.cjlogo2), subTitle: '账户保障可升级')
}


最后,分组中的内容是有分割线的,List和ListItemGroup都提供了分割线属性divider,这里我们只在ListItemGroup就可以,要注意分割线的宽度最好不要设置小于1的值,不然可能会有部分不显示的情况:


.divider(strokeWidth: 1.vp, color: Color(216, 216, 216), startMargin: 10.vp, endMargin: 0.vp)


今天的内容就是这样,感谢阅读。##HarmonyOS语言##仓颉##购物#


點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
移動開發工程師
手記
粉絲
1
獲贊與收藏
1

關注作者,訂閱最新文章

閱讀免費教程

  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消