> 文档中心 > 【Harmony OS】【FAQ】鸿蒙问题合集2

【Harmony OS】【FAQ】鸿蒙问题合集2

 1、问题描述:

swiper嵌套子组件,子组件里面有PanGesture,有冲突swiper消费了滑动手势,该如何解决?

demo如下:

// @ts-nocheck@Entry@Componentstruct PanGestureExample {  @State offsetX: number = 0  @State offsetY: number = 0  build() {    Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.SpaceBetween }) {      Text('PanGesture offset:\nX: ' + this.offsetX + '\n' + 'Y: ' + this.offsetY)    }    .height(100).width(200).padding(20).border({ width: 1 }).margin(80)    .translate({ x: this.offsetX, y: this.offsetY, z: 5 })    .gesture(    PanGesture({})      .onActionStart((event: GestureEvent) => {        console.info('Pan start')      })      .onActionUpdate((event: GestureEvent) => {        this.offsetX = event.offsetX        this.offsetY = event.offsetY      })      .onActionEnd(() => {        console.info('Pan end')      })    )  }}

解决方案

建议在PhotoView的父组件Swiper上设置priorityGesture属性,默认情况下,子组件优先于父组件识别手势,当父组件配置priorityGesture时,父组件优先于子组件进行识别。参考如下代码:

Swiper()....priorityGesture(TapGesture()  .onAction(() => {  }), GestureMask.IgnoreInternal)


2、问题描述:

eTS scroll 组件,设置scrollable(ScrollDirection.Horizontal)时,为什么横向滚动滚动条不显示?

demo如下:

@Entry@Componentstruct scrollerPage {  scroller: Scroller = new Scroller()  private arr: number[] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]  build() {    Stack({ alignContent: Alignment.TopStart }) {      Scroll(this.scroller) {        Row({ space: 20 }) {          Row().width(150).height(50).backgroundColor(0xAFEEEE)          Row().width(150).height(50).backgroundColor(0x00FFFF)        }.width("200%").height(52).border({ width: 1 }).margin({ top: 20 })      }      .scrollable(ScrollDirection.Horizontal).scrollBar(BarState.On)      .scrollBarColor(Color.Red).scrollBarWidth(30)      .onScroll((xOffset: number, yOffset: number) => {        console.info(xOffset + ' ' + yOffset)      })      .onScrollEdge((side: Edge) => {        console.info('To the edge')      })      .onScrollEnd(() => {        console.info('Scroll Stop')      })    }.width('100%').height('100%').backgroundColor(0xDCDCDC)  }}

解决方案

横向的Scroll是没有滑动条显示的,如果需要可以用ScrollBar组件自定义

js中类似于scrollview是list和list-item组件联合使用,示例如下:

1、对应hml中遍历js中定义的imageList数据:

  

2、对应js中的imageList定义:

data: {imageList: [{value: "/common/1.jpg"}, {value: "/common/2.jpg"}, {value: "/common/3.jpg"}, {value: "/common/4.jpg"}],}

3、可将步骤1中image标签改为div等标签自行定义

4、默认为纵向,横向、纵向属性分别如下:

style="flex-direction:row"style="flex-direction:column"


3、问题描述:

设备的DVID有什么方式可以校验是否是真实的设备吗?

解决方案:

DVID不是某个设备的ID,是指由同一个鸿蒙账号的多个设备组成一个超级终端后的虚拟ID

相关参考链接:文档中心

 

欲了解更多更全技术文章,欢迎访问https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh