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

【每日学点鸿蒙知识】Grid子项拖动、Swiper指示器、手势事件上报、指定使用发布版本API、打包签名失败报错109

1、HarmonyOS Grid组件子项拖动问题?

Grid组件中有20个GridItem子组件,其中前4个GridItem是不能拖动的,其余GridItem可拖动排序。

关于可拖拽grid及gridItem可参考如下代码(注:其中 .draggable(parseInt(day) <= 6 ? true : false)为前6个griditem不可拖动):

@Entry @Component struct GridExample {
  @State numbers: string[] = []
  scroller: Scroller = new Scroller()
  @State text: string = 'drag'

  @Builder
  pixelMapBuilder() { //拖拽过程样式
    Column() {
      Text(this.text)
        .fontSize(16)
        .backgroundColor(0xF9CF93)
        .width(80)
        .height(80)
        .textAlign(TextAlign.Center)
    }
  }

  aboutToAppear() {
    for (let i = 1; i <= 15; i++) {
      this.numbers.push(i + '')
    }
  }

  changeIndex(index1: number, index2: number) { //交换数组位置
    let temp: string;
    temp = this.numbers[index1];
    this.numbers[index1] = this.numbers[index2];
    this.numbers[index2] = temp;
  }

  build() {
    Column({ space: 5 }) {
      Grid(this.scroller) {
        ForEach(this.numbers, (day: string) => {
          GridItem() {
            Text(day)
              .fontSize(16)
              .backgroundColor(parseInt(day) <= 6 ? Color.Red : Color.Green)
              .width(80)
              .height(80)
              .textAlign(TextAlign.Center)
          }
          .draggable(parseInt(day) <= 6 ? true : false)
        })
      }
      .supportAnimation(true)
      .columnsTemplate('1fr 1fr 1fr')
      .columnsGap(10)
      .rowsGap(10)
      .width('90%')
      .backgroundColor(0xFAEEE0)
      .height(300)
      .editMode(true)
      //设置Grid是否进入编辑模式,进入编辑模式可以拖拽Grid组件内部GridItem
      .onItemDragStart((event: ItemDragInfo, itemIndex: number) => { //第一次拖拽此事件绑定的组件时,触发回调。
        this.text = this.numbers[itemIndex]
        return this.pixelMapBuilder() //设置拖拽过程中显示的图片。
      })
      .onItemDrop((event: ItemDragInfo, itemIndex: number, insertIndex: number, isSuccess: boolean) => {
        //绑定此事件的组件可作为拖拽释放目标,当在本组件范围内停止拖拽行为时,触发回调。 // isSuccess=false时,说明drop的位置在grid外部;insertIndex > length时,说明有新增元素的事件发生
        if (!isSuccess || insertIndex >= this.numbers.length) {
          return
        }
        this.changeIndex(itemIndex, insertIndex)
      })
    }
  }
2、HarmonyOS Swiper指示器?

使用Swiper的DotIndicator.bottom(0)无法让指示器在底部,总有一个边距在。

swiper组件indicator属性设置:left,top,right,bottom设置导航点距离Swiper组件距离。indicator自身有宽高,所以在设置后不能完全贴边。

3、HarmonyOS 手势事件上报问题?

由于需要做视频播控手势,滑动屏幕控制音量、亮度和进度,和显示播控界面。因此有一些手势冲突,有下边这种需求,帮忙看一下应该如何写这个事件,通过看文档这么写的,不过不太好用。

Stack() {
  Column() {

  }
  .gesture(PanGesture()) // 期望能够透传到这个地方

  Column() {
    this.top()

    Blank()
      .parallelGesture(null, GestureMask.IgnoreInternal) // 期望能够把这个手势事件透传给上边的组件

    this.bottom()
  }
  .parallelGesture(null, GestureMask.IgnoreInternal)
}

可以参考hitTestBehavior实现手势透传

4、HarmonyOS 打包的时候如何指定使用发布版本API?

使用DevEco Studio打包 release 包(Build APP), pack.info信息中显示 apiVersion - releaseType 的值是"Beta1", 在使用该包尝试上架的时候,提示请使用发布版本的API开发应用申请上架。 请问打包的时候如何指定使用发布版本API。

找到 的sdk下的hms\toolchains这个目录,有个uni-package.json文件,修改releaseType 为 Release,可参考如下案例:

{
  "apiVersion": "11",
"displayName": "Toolchains",
"meta": {
  "metaVersion": "3.1.0"
},
  "path": "toolchains",
"platformVersion": "4.1.0",
"releaseType": "Release",
"version": "4.1.0.71"
}

修改成功后,重新打包,再构建时会把这个配置文件的ReleaseType值打进去
检查方法:build下的outputs的default的pack.info里面查看apiversion里的releaseType 是否为 Release
在AGC软件包管理处重新上传修改后的软件包,重新提交审核。

5、HarmonyOS 1code:109?

参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-faqs-V5/faqs-compiling-and-building-101-V5


http://www.kler.cn/a/457165.html

相关文章:

  • Dockerfile运行指令
  • 30天开发操作系统 第 10 天 -- 叠加处理
  • 【brew安装失败】DNS 查询 raw.githubusercontent.com 返回的是 0.0.0.0
  • 绝美的数据处理图-三坐标轴-散点图-堆叠图-数据可视化图
  • PyTorch快速入门教程【小土堆】之损失函数与反向传播
  • 如何恢复永久删除的PPT文件?查看数据恢复教程!
  • 「Python数据科学」标量、向量、矩阵、张量与多维数组的辨析
  • WEB UI 常用类
  • 【每日学点鸿蒙知识】Web高度适配、变量声明规范、动画取消、签名文件、包体积优化相关
  • 亚马逊云科技陈晓建:每个应用程序都离不开生成式AI
  • MySQL-数据库,数据表备份
  • 智能化军事【四】AI芯片在智能化军事中的应用模式
  • 1012. 【USACO题库】1.3.4 Prime Cryptarithm牛式
  • 论文浅尝 | 编辑基于语言模型的知识图谱嵌入(AAAI2024)
  • 通用导出任何对象列表数据的excel工具类
  • 期权懂|期权新手入门知识:如何挑选期权活跃合约?
  • pytorch nn.Parameter模块介绍
  • Python|Pyppeteer实现自动化获取reCaptcha验证码图片以及提示词(29)
  • Debian-linux运维-ssh配置(兼容Jenkins插件的ssh连接公钥类型)
  • 【JS笔记】快速安装nodejs(九)
  • 雪花算法(Snowflake algorithm)介绍、优缺点及代码示例
  • upload-labs关卡记录17
  • 服务器时间不同步
  • Redis到底支不支持事务啊?
  • Docker安装GPUStack详细教程
  • 知识碎片-环境配置