鸿蒙Next仓颉语言开发实战教程:店铺详情页

简介: 本文介绍了使用仓颉语言开发HarmonyOS应用中的店铺详情页实现方法,重点讲解了List容器的使用技巧,包括如何布局、设置圆角及处理列表项分组等内容,并附有完整代码示例。

各位早上好,幽蓝君又来分享仓颉开发教程了,今天的内容是店铺详情页:
image.png

这个页面的内容看似简单,其实有很多小细节需要注意,主要还是让大家熟悉List容器的使用。
整个页面由导航栏和List容器两大部分组成,导航栏我们已经分享过多次,今天不再赘述。主要说一下List部分。
首先需要注意的是在有自定义导航栏的情况下如何让List占满剩余屏幕,你可以设置layoutWeight属性:

List{
}
.width(100.percent)
.layoutWeight(1)
.backgroundColor(Color(247, 247, 247, alpha: 1.0))

在List容器中,大部分内容都可以直接使用ListItem实现,但是在店铺简介和开店时间部分可能需要使用ListItemGroup,这里需要注意,使用ListItemGroup需要传入参数ListItemGroupParams,这里的内容主要是header和footer样式,不过可以传空:

ListItemGroup(ListItemGroupParams()){
}

另外,下面的几条内容是有圆角的,不过仓颉提供了非常灵活的圆角设置方式,你可以在borderRadius属性中直接写一个数字代表每一个圆角的弧度:

.borderRadius(8)

也可以逐个设置每一个角的弧度,不过这时候就不能直接写数字了,这里Length类型,需要带上单位:

.borderRadius(bottomLeft: 8.vp, bottomRight: 8.vp,topLeft: 8.vp, topRight: 8.vp)

以上就是本页面需要注意的地方,下面附上本页面的完整代码:

import ohos.base.*
import ohos.component.*
import ohos.state_manage.*
import ohos.state_macro_manage.*
import ohos.router.Router
import cj_res_entry.app
@Entry
@Component
public class shoppage  {
    func build() {
        Column {
            Stack {
                 Text('店铺详情')
                .fontSize(16)
                .fontWeight(FontWeight.Bold)
                .fontColor(Color.BLACK)
                Row{
                     Image(@r(app.media.back))
                .width(27)
                .height(27)
                 .onClick({evet => Router.back()})
                }.width(100.percent).justifyContent(FlexAlign.Start).padding(left:5)
            }
            .width(100.percent)
            .height(60)
            .backgroundColor(Color.WHITE)
            List(space:10){
                ListItem{
                    Column{
                         Text('商城')
                            .fontSize(22)
                            .fontWeight(FontWeight.Bold)
                            .fontColor(Color.WHITE)
                        .width(50)
                        .height(50)
                        .backgroundColor(Color.RED)
                        .textAlign(TextAlign.Center)
                        .borderRadius(8)
                        Text('幽蓝计划旗舰店')
                        .fontSize(15)
                        .fontColor(Color.BLACK)
                        .fontWeight(FontWeight.Bold)
                        .margin(top:5)
                        Column{
                            Text('已关注')
                            .fontSize(13)
                            .fontColor(Color.GRAY)
                            Text('11万人关注')
                            .fontSize(12)
                            .fontColor(Color.GRAY)
                        }
                        .width(110)
                        .height(40)
                        .margin(top:30)
                        .alignItems(HorizontalAlign.Center)
                        .justifyContent(FlexAlign.Center)
                        .border(width: Length(0.5, unitType: LengthType.vp), color: Color(216, 216, 216, alpha: 1.0), radius:  Length(20, unitType: LengthType.vp), style: BorderStyle.Solid)
                    }
                    .width(100.percent)
                    .alignItems(HorizontalAlign.Center)
                    .backgroundColor(Color.WHITE)
                    .padding(bottom:10)
                }
                ListItem{
                     Row{
                            Text('店铺二维码')
                            .fontColor(Color.BLACK)
                            .fontSize(15)
                            .fontWeight(FontWeight.Bold)
                            Image(@r(app.media.chaofu))
                            .width(22)
                            .height(22)
                        }
                        .alignItems(VerticalAlign.Center)
                        .justifyContent(FlexAlign.SpaceBetween)
                        .width(100.percent)
                        .height(38)
                        .borderRadius(8)
                    .padding(left:10,right:10)
                        .backgroundColor(Color.WHITE)
                }
                .padding(left:10,right:10)
                ListItemGroup(ListItemGroupParams()){
                    ListItem{
                        Row{
                            Text('店铺简介')
                            .fontColor(Color.BLACK)
                            .fontSize(15)
                            .fontWeight(FontWeight.Bold)
                            Text('潮服/运配/男女服饰')
                            .fontColor(Color.GRAY)
                            .fontSize(15)
                             .margin(left:10)
                        }
                        .alignItems(VerticalAlign.Center)
                        .width(100.percent)
                        .height(38)
                         .padding(left:10,right:10)
                    }
                    .backgroundColor(Color.WHITE)
                    .borderRadius(topLeft: 8.vp, topRight: 8.vp)

                    ListItem{
                        Row{
                            Text('开店时间')
                            .fontColor(Color.BLACK)
                            .fontSize(15)
                            .fontWeight(FontWeight.Bold)
                            Text('2025-05-05')
                            .fontColor(Color.GRAY)
                            .fontSize(15)
                            .margin(left:10)
                        }
                        .alignItems(VerticalAlign.Center)
                        .width(100.percent)
                        .height(38)
                         .padding(left:10,right:10)
                    }
                    .backgroundColor(Color.WHITE)
                    .borderRadius(bottomLeft: 8.vp, bottomRight: 8.vp)
                }
                 .borderRadius(8)
                 .padding(left:10,right:10)

                ListItem{
                    Row{
                        Text('查看全部商品')
                        .fontWeight(FontWeight.Bold)
                        .fontColor(Color.RED)
                        .fontSize(15)
                    }
                    .width(100.percent)
                    .height(38)
                    .backgroundColor(Color.WHITE)
                    .borderRadius(8)
                    .alignItems(VerticalAlign.Center)
                    .justifyContent(FlexAlign.Center)
                }
                .padding(left:10,right:10)
            }
            .width(100.percent)
            .layoutWeight(1)
            .backgroundColor(Color(247, 247, 247, alpha: 1.0))
        }
    }
}

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

相关文章
|
2月前
|
监控 JavaScript 编译器
从“天书”到源码:HarmonyOS NEXT 崩溃堆栈解析实战指南
本文详解如何利用 hiAppEvent 监控并获取 sourcemap、debug so 等核心产物,剖析了 hstack 工具如何将混淆的 Native 与 ArkTS 堆栈还原为源码,助力开发者掌握异常分析方法,提升应用稳定性。
432 40
|
3月前
|
开发者 容器
鸿蒙应用开发从入门到实战(十四):ArkUI组件Column&Row&线性布局
ArkUI提供了丰富的系统组件,用于制作鸿蒙原生应用APP的UI,本文主要讲解Column和Row组件的使用以及线性布局的方法。
310 12
|
2月前
|
移动开发 前端开发 Android开发
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
304 12
【02】建立各项目录和页面标准化产品-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
2月前
|
移动开发 JavaScript 应用服务中间件
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
270 5
【06】优化完善落地页样式内容-精度优化-vue加vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
2月前
|
移动开发 Rust JavaScript
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
631 4
【01】首页建立-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
|
2月前
|
移动开发 Android开发
【03】建立隐私关于等相关页面和内容-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
【03】建立隐私关于等相关页面和内容-vue+vite开发实战-做一个非常漂亮的APP下载落地页-支持PC和H5自适应提供安卓苹果鸿蒙下载和网页端访问-优雅草卓伊凡
165 0
|
3月前
鸿蒙应用开发从入门到实战(十六):线性布局案例
ArkUI提供了丰富的系统组件,用于制作鸿蒙原生应用APP的UI,本文通过简单案例演示如何使用Column和Row组件实现线性布局。
175 1
|
3月前
|
API 数据处理
鸿蒙应用开发从入门到实战(十三):ArkUI组件Slider&Progress
ArkUI提供滑块Slider与进度条Progress组件,用于鸿蒙原生APP开发。Slider支持拖动调节音量、亮度等,可设步长、方向及提示气泡;Progress支持线性、环形等多种样式,可自定义颜色、宽度与刻度,实时显示任务进度。
256 2
|
3月前
|
传感器 监控 安全
HarmonyOS NEXT 5.0 的星闪(NearLink)开发应用案例
V哥分享HarmonyOS NEXT 5.0星闪开发实战,涵盖智能车钥匙无感解锁与工业传感器监控。低延迟、高可靠,代码完整,速来学习!
556 0
|
6月前
|
容器
HarmonyOS NEXT仓颉开发语言实战案例:外卖App
仓颉语言实战分享,教你如何用仓颉开发外卖App界面。内容包括页面布局、导航栏自定义、搜索框实现、列表模块构建等,附完整代码示例。轻松掌握Scroll、List等组件使用技巧,提升HarmonyOS应用开发能力。

热门文章

最新文章