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

实战17-NavBar+Vip布局

NavBar.ets

import { PADDING } from '../../constants/size'
import rvp from '../../utils/resposive/rvIndex'

@Component
export default struct NavBar {
  @StorageProp('topHeight') topHeight: number = 0;

  build() {
    Row() {
      Row({ space: rvp(6) }) {
        Text('请选择地址').fontSize(rvp(12)).fontColor($r('app.color.white'))
        Image($r('app.media.arrow_down')).width(rvp(6)).height(rvp(6)).fillColor($r('app.color.white'))
      }

      Row({ space: rvp(28) }) {
        Column({ space: rvp(1) }) {
          Image($r('app.media.message')).width(rvp(20)).height(rvp(20)).fillColor($r('app.color.white'))
          Text('消息').fontSize(rvp(10)).fontColor($r('app.color.white')).margin({ bottom: rvp(3) })
        }

        Column({ space: rvp(1) }) {
          Image($r('app.media.customer')).width(rvp(20)).height(rvp(20)).fillColor($r('app.color.white'))
          Text('客服').fontSize(rvp(10)).fontColor($r('app.color.white'))
        }
      }
    }
    .width('100%')
    .height(rvp(44))
    .justifyContent(FlexAlign.SpaceBetween)
    .padding({ left: rvp(PADDING), right: rvp(PADDING) })
    .margin({ top: this.topHeight })
  }
}

 

Vip.ets

import rvp from '../../utils/resposive/rvIndex'

@Component
export default struct Vip {
  @StorageProp('topHeight') topHeight: number = 0

  build() {
    Stack() {
      Image($r('app.media.vip_bg')).width(rvp(328)).height('100%').objectFit(ImageFit.Fill)
      Column({ space: rvp(14) }) {
        Row() {
          Image($r('app.media.crown')).width(rvp(18)).height(rvp(18)).objectFit(ImageFit.Fill)
          Text('开通谷粒卡享特权')
            .fontSize(rvp(16))
            .fontColor($r('app.color.white'))
            .margin({ left: rvp(8), right: rvp(52) })
          Image($r('app.media.vip')).width(rvp(42)).height(rvp(19)).objectFit(ImageFit.Fill)
        }

        Row({ space: rvp(32) }) {
          Column({ space: rvp(6) }) {
            Text('余额').fontColor($r('app.color.white')).fontSize(rvp(12))
            Text() {
              Span('0').fontSize(rvp(16)).fontWeight(700)
              Span('元').fontSize(rvp(10))
            }.fontColor($r('app.color.white'))
          }

          Column({ space: rvp(6) }) {
            Text('优惠卷').fontColor($r('app.color.white')).fontSize(rvp(12))
            Text() {
              Span('4').fontSize(rvp(16)).fontWeight(700)
              Span('张').fontSize(rvp(10))
            }.fontColor($r('app.color.white'))
          }

          Column({ space: rvp(6) }) {
            Text('会员特价').fontColor($r('app.color.white')).fontSize(rvp(12))
            Text() {
              Span('7').fontSize(rvp(16)).fontWeight(700)
              Span('项').fontSize(rvp(10))
            }.fontColor($r('app.color.white'))
          }

          Column({ space: rvp(6) }) {
            Text('会员福利').fontColor($r('app.color.white')).fontSize(rvp(12))
            Text() {
              Span('21').fontSize(rvp(16)).fontWeight(700)
              Span('个').fontSize(rvp(10))
            }.fontColor($r('app.color.white'))
          }
        }
      }.height('100%').justifyContent(FlexAlign.Center)
    }.width('100%').margin({ top: rvp(49) + this.topHeight }).height(rvp(99))
  }
}

 

import ScrollContainer from '../components/ScrollContainer/Index'
import { PADDING } from '../constants/size'
import Bg from '../views/Service/Bg'
import NavBar from '../views/Service/NavBar'
import Vip from '../views/Service/Vip'

@Component
export default struct Service {
  @Builder
  navBuilder() {
    NavBar()
  }

  @Builder
  contentBuild() {
    Stack() {
      Bg()
      Column() {
        Vip()
      }.width('100%').padding({
        left: PADDING,
        right: PADDING
      })
    }.width('100%').alignContent(Alignment.TopStart).backgroundColor($r('app.color.bg_gray_second'))
  }

  build() {

    ScrollContainer({
      navBuilder: this.navBuilder, contentBuilder: () => {
        this.contentBuild()
      }
    })
  }
}

 


http://www.kler.cn/news/310973.html

相关文章:

  • 2024年9月python二级易错题和难题大全(附详细解析)(四)
  • Spring中存储Bean的常见注解
  • python的数据类型详解
  • MyBatis系统学习(三)——动态SQL
  • 简单题28-找出字符传中第一个匹配项的下标(Java and Python)20240918
  • ElasticSearch介绍+使用
  • 3. Python计算水仙花数
  • 利士策分享,赚钱与体重:一场关于生活平衡的微妙探索
  • 云计算服务的底层,虚拟化技术的实现原理
  • 假期学习--iOS 编译链接
  • 如何挑选一款性价比高的开放式耳机?高性价比宝藏蓝牙耳机推荐
  • 吸浮毛宠物空气净化器推荐,希喂、小米、有哈宠物空气净化器测评
  • 句子成分——每日一划(八)
  • 算法:30.串联所有单词的子串
  • 【MySQL】SQL语句的优化
  • Keil MDK5学习记录
  • 自定义Spring Security认证处理的完整解决方案
  • 2024ICPC第一场网络赛补题
  • 思通数科开源智能文档识别平台的核心功能
  • 在Linux服务器上如何实现自动化部署?
  • 【车载以太网】【SOME/IP】Wireshark 解析
  • Maven 的多种打jar包方式详细介绍、区别及使用教程——附使用命令
  • 分类预测|基于哈里斯鹰优化最小二乘支持向量机的数据分类预测Matlab程序HHO-LSSVM多特征输入多类别输出
  • 软件编程随想
  • 数据库MySQL、Mariadb、PostgreSQL、MangoDB、Memcached和Redis详细介绍
  • ARM64基础 -- 栈帧管理示例
  • 什么是轮播图?如何实现轮播图?有几种方法?
  • 图书馆座位预约系统小程序的设计
  • 1.2 测试基础
  • 小程序组件间通信