鸿蒙版瑞幸咖啡开发日记(三)购物车结算栏开发

这篇具有很好参考价值的文章主要介绍了鸿蒙版瑞幸咖啡开发日记(三)购物车结算栏开发。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

这里我实现的效果其实和原版的差别不大,只是没有上面的清空购物车
鸿蒙购物车,鸿蒙,harmonyos,华为
只要在上面的菜单栏中选购了咖啡,这里的图标就会自动展开成购物车
鸿蒙购物车,鸿蒙,harmonyos,华为
点击后显示具体的购物车咖啡
鸿蒙购物车,鸿蒙,harmonyos,华为

1.整体设计思路

大家有没有觉得这里还是蛮复杂的,里面有购物车图标、配送费计算、结算栏等等,那我们怎么设计呢?我们一步步来:

  1. 先设计右侧的购物车图标,这就是就是一个Image组件
  2. 中间的结算栏其实就是一个线性布局DirectionLayout
  3. 已点咖啡的数量小圆圈
  4. 上面的具体已点咖啡

2.购物车结算栏布局设计

这里我们先不讨论里面的具体逻辑功能实现,后面在与详情页联动的时候会带着大家对里面的功能进行补充完整的,我们这里着重页面布局的设计

2.1 右侧购物车图标

其实就是一个线性布局里面添加了一张图片,而这个线性布局由边框和是圆形的

<!--右侧已点点餐图标-->
<DependentLayout
    ohos:visibility="visible"
    ohos:id="$+id:btn_cart"
    ohos:bottom_margin="80vp"
    ohos:background_element="$graphic:diancan"
    ohos:align_parent_bottom="true"
    ohos:align_parent_right="true"
    ohos:height="68vp"
    ohos:width="68vp">
    <Image
        ohos:scale_mode="stretch"
        ohos:center_in_parent="true"
        ohos:image_src="$media:luckin"
        ohos:height="40vp"
        ohos:width="40vp"/>
</DependentLayout>

背景设置相关的graphic文件diancan.xml

<?xml version="1.0" encoding="utf-8"?>
<shape
    xmlns:ohos="http://schemas.huawei.com/res/ohos" ohos:shape="oval">
    <solid ohos:color="#fff"/>
    <stroke ohos:color="#C8BFE7" ohos:width="1vp"/>

</shape>

2.2 购物车结算栏

为了更好的展示,购物车结算栏是由右侧图标而来的,我们需要设置一样的底部margin都为80vp;
那购物车结算栏的布局方式是什么呢?

  1. 上面是配送费相关的文本Text信息
  2. 中间一层时一个线性布局,在布局里面,左侧是与购物车图标一样的图片组件Image,中间是价格计算,右侧是进行结算的按钮Button组件
  3. 整个结算栏平时是隐藏的
    鸿蒙购物车,鸿蒙,harmonyos,华为
<!--底部结算栏-->
<DirectionalLayout
    ohos:id="$+id:menu_info_dl"
    ohos:visibility="hide"
    ohos:bottom_margin="80vp"
    ohos:align_parent_bottom="true"
    ohos:align_parent_right="true"
    ohos:height="94vp"
    ohos:background_element="$graphic:cart"
    ohos:width="340vp"
    ohos:orientation="vertical">

    <Text
        ohos:id="$+id:discount_txt"
        ohos:margin="6vp"
        ohos:height="16vp"
        ohos:width="match_parent"
        ohos:text="配送费6元,再买24.6元立减3元"
        ohos:text_alignment="center"
        ohos:text_weight="600"
        ohos:text_size="16fp"
        ohos:text_color="#080e89"/>

    <DirectionalLayout
        ohos:id="$+id:cart_dl"
        ohos:height="match_parent"
        ohos:width="match_parent"
        ohos:bottom_margin="6vp"
        ohos:background_element="$graphic:count"
        ohos:orientation="horizontal">

        <Image
            ohos:margin="10vp"
            ohos:height="40vp"
            ohos:width="60vp"
            ohos:scale_mode="zoom_center"
            ohos:clip_alignment="center"
            ohos:image_src="$media:luckin"/>

        <DirectionalLayout
            ohos:top_margin="10vp"
            ohos:bottom_margin="10vp"
            ohos:height="match_parent"
            ohos:width="180vp"
            ohos:orientation="vertical">

            <DirectionalLayout
                ohos:height="match_content"
                ohos:width="match_parent"
                ohos:orientation="horizontal">
                <Text
                    ohos:height="match_content"
                    ohos:width="match_content"
                    ohos:text="预计到手 "
                    ohos:text_alignment="center"
                    ohos:text_size="13fp"/>

                <Text
                    ohos:id="$+id:total_price"
                    ohos:height="match_content"
                    ohos:width="match_content"
                    ohos:text="¥0"
                    ohos:text_alignment="center"
                    ohos:text_size="13fp"
                    ohos:text_weight="800"
                    ohos:text_color="#e65638"/>

            </DirectionalLayout>

            <Text
                ohos:top_margin="2vp"
                ohos:height="match_content"
                ohos:width="match_content"
                ohos:text="已享受更低优惠,共减免¥17.6"
                ohos:text_size="12fp"
                ohos:text_alignment="center"
                ohos:text_color="#9d9d9f"/>

        </DirectionalLayout>

        <Button
            ohos:text_color="#fff"
            ohos:text="去结算"
            ohos:text_size="16fp"
            ohos:align_parent_right="true"
            ohos:background_element="$graphic:count_button"
            ohos:height="match_parent"
            ohos:width="match_parent"/>
    </DirectionalLayout>
</DirectionalLayout>

2.3 已点咖啡数量圆圈

效果图如下所示:
鸿蒙购物车,鸿蒙,harmonyos,华为
问题1:我们思考一下这里的圆圈咋设置???
答:答案是肯定的,一定是一个圆形的线性布局里面包裹了一个Text文本组件

问题2:怎么设置到右上角呢?
答:使用覆盖的方式设置到右上角,我们将这个线性布局设置的与结算栏同样的高度,与左侧的margin加大一点!因为整体的布局文件ability_main.xml中是相对布局DependentLayout的形式,所以不指定相对位置,会自己实现覆盖!
鸿蒙购物车,鸿蒙,harmonyos,华为
鸿蒙购物车,鸿蒙,harmonyos,华为

2.4 已点咖啡模板

我们知道点击中间的结算栏之后,会展示你具体点了哪些咖啡!【当然默认是隐藏的】
鸿蒙购物车,鸿蒙,harmonyos,华为

整个布局文件中,左侧有一个复选框,我这里不是用的鸿蒙自带的复选框组件哈,使用的一个Image进行代替,然后其余部分与二级菜单中具体咖啡几乎是一样的啦,所以copy过来即可!!!
鸿蒙购物车,鸿蒙,harmonyos,华为
已点咖啡模板文件template_ordered.xml

<?xml version="1.0" encoding="utf-8"?>
<DirectionalLayout
    xmlns:ohos="http://schemas.huawei.com/res/ohos"
    ohos:height="110vp"
    ohos:width="match_parent"
    ohos:orientation="horizontal">

    <Image
        ohos:left_margin="15vp"
        ohos:layout_alignment="vertical_center"
        ohos:height="20vp"
        ohos:width="20vp"
        ohos:image_src="$media:choose"
        ohos:scale_mode="zoom_center"
        ohos:clip_alignment="center"/>

    <Image
        ohos:left_margin="20vp"
        ohos:id="$+id:coffee_img"
        ohos:height="90vp"
        ohos:width="90vp"
        ohos:image_src="$media:coffee1"
        ohos:scale_mode="stretch"
        ohos:clip_alignment="center"
        ohos:layout_alignment="center"/>

    <DirectionalLayout
        ohos:left_margin="14vp"
        ohos:height="match_parent"
        ohos:width="match_parent"
        ohos:orientation="vertical">

        <Text
            ohos:top_margin="5vp"
            ohos:id="$+id:coffee_title"
            ohos:height="match_content"
            ohos:width="match_content"
            ohos:text="厚乳拿铁"
            ohos:text_color="#313131"
            ohos:text_size="20fp"
            ohos:text_alignment="center"/>

        <Text
            ohos:id="$+id:coffee_taste"
            ohos:height="match_content"
            ohos:width="match_content"
            ohos:text="热/不另外加糖"
            ohos:text_color="#313131"
            ohos:text_size="12fp"
            ohos:text_alignment="center"/>

        <DirectionalLayout
            ohos:height="26vp"
            ohos:width="match_parent"
            ohos:top_margin="28vp"
            ohos:orientation="horizontal">

            <Text
                ohos:id="$+id:coffee_price"
                ohos:height="match_content"
                ohos:width="match_content"
                ohos:text="¥16"
                ohos:text_color="#dd5810"
                ohos:text_size="18fp"
                ohos:text_alignment="center"/>

            <DirectionalLayout
                ohos:height="match_parent"
                ohos:width="match_parent"
                ohos:alignment="right"
                ohos:orientation="horizontal">

                <Image
                    ohos:height="32vp"
                    ohos:width="32vp"
                    ohos:image_src="$media:minus"
                    ohos:layout_alignment="vertical_center"
                    ohos:padding="5vp"
                    ohos:scale_mode="stretch"/>

                <Text
                    ohos:id="$+id:coffee_num"
                    ohos:height="match_content"
                    ohos:width="match_content"
                    ohos:left_margin="2vp"
                    ohos:right_margin="2vp"
                    ohos:text="1"
                    ohos:text_alignment="vertical_center"
                    ohos:text_size="20fp"/>

                <Image
                    ohos:height="32vp"
                    ohos:width="32vp"
                    ohos:image_src="$media:plus"
                    ohos:layout_alignment="vertical_center"
                    ohos:padding="5vp"
                    ohos:scale_mode="stretch"/>
            </DirectionalLayout>
        </DirectionalLayout>
    </DirectionalLayout>
</DirectionalLayout>

这里对于模板的渲染,我们会在《详情页与首页联动》一文中详细阐述~文章来源地址https://www.toymoban.com/news/detail-810617.html

到了这里,关于鸿蒙版瑞幸咖啡开发日记(三)购物车结算栏开发的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序商城开发-商品详情页跳转购物车

    微信小程序商城开发中商品详情页中购物车页面的跳转(仅限于tabbar页面的跳转)   点击商品详情页中的购物车图标跳转不到tabbar及导航栏中的购物车页面,总是报错 微信小程序开发需要跳转tabbar页面的话,有固定的跳转方式,不是开发中所有的跳转方式都适用于tabbar跳转

    2024年02月17日
    浏览(38)
  • 【uniapp 开发小程序】购物车功能,实现全选、反选、单选、计算总价

    uniapp 开发小程序,实现购物车功能,实现全选、反选、单选、计算总价 关键代码: return totalPrice.toFixed(2); // 保留两位小数 否则会出现多位小数现象:

    2024年02月11日
    浏览(21)
  • Android App开发实战项目之购物车(附源码 超详细必看)

    需要源码请点赞关注收藏后评论区留言~~~ 电商App的购物车可谓是司空见惯了,可以知道购物车除了底部有一个结算行,其余部分主要是已加入购物车的商品列表,然后每个商品左边是商品小图,右边是商品名称以及价格,第一次进入购物车页面应该是空的,随着加入东西的增

    2024年02月11日
    浏览(51)
  • php开发实战分析(2):cookie的动态使用(设置、获取、删除、猜你喜欢原理、购物车调用)

    在 PHP 中,cookie 是一种用于在客户端(浏览器)和服务器之间存储数据的一种机制。 它们通常用于跟踪和识别用户,并存储用户的偏好设置。下面是一些常见的用法和函数来操作 cookie。 可以使用 setcookie() 函数来设置 cookie。该函数有多个参数,其中最重要的是名称和值。下

    2024年02月15日
    浏览(37)
  • 使用JavaScript和Vue.js框架开发的电子商务网站,实现商品展示和购物车功能

    引言: 随着互联网的快速发展和智能手机的普及,电子商务行业正迎来一个全新的时代。越来越多的消费者选择网上购物,而不再局限于传统的实体店。这种趋势不仅仅是改变了消费者的习惯购物,也给企业带来了巨大的商机。为了不断满足消费者的需求,电子商务网站需要

    2024年02月15日
    浏览(44)
  • Vue项目商品购物车前端本地缓存逻辑(适用H5/ipad/PC端)——前端实现购物车删除商品、购物车增减数量,清空购物车功能

    Vue3 + Vite + Ts开源后台管理系统模板 基于ElementUi或AntdUI再次封装基础组件文档 基于Element-plus再次封装基础组件文档(vue3+ts)

    2024年02月12日
    浏览(35)
  • JavaWeb购物系统(五)购物车模块的实现

    未添加商品效果图 添加商品之后的效果图 添加商品 购物车中商品的数量增加、减少、通过键盘输入改变数量 清空购物车 计算购物车商品的总价格 我们的购物车采用的是在服务端,即:使用session来存储。这样做的 缺点 :无法永久存储,当服务端关闭的时候,会销毁。 优点

    2024年02月07日
    浏览(31)
  • JavaWeb购物系统(六)购物车订单模块的实现

    有订单时的效果图 无订单时的效果图 订单详情页 生成订单 订单页的展示 查看订单详情 和购物车同样的,首先得知道我们的订单对应的哪个实体对象。一个用户可能有多条订单记录,一个订单里边可以包含多个 商品(也可以理解为多个购物项) 。理清这个逻辑之后,我们

    2024年02月05日
    浏览(40)
  • Html购物车

    目录 一.登陆界面 二.注册界面 三.购物车界面  我的登陆界面用正则判断,昵称输入框的输入要求时3到6个大写或小写字母, placeholder时信息提示 ,它在输入框中显示,当你在输入框中输入值时,就会消失  我写了非空判断,在没有输入值就点击登陆时,就会弹出提示框(

    2024年02月08日
    浏览(37)
  • JavaWeb 购物车项目

    今天是基于我们所学的服务器存储端和三层架构来完善该项目,今天先完善一部分的功能。   1.登录 先创建一个用户表,表中有id,name,pwd三个属性首。 需要具备一个登录页面,一个处理登录数据的页面,在该页面进行判断,当该用户存在,我们跳转到商城,用户不存在回到登

    2024年02月07日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包