基于滑动监听和状态变量实现滑动时取消按压态

长列表里列表项仅触摸呈现按压态,触摸同时滑动取消按压态(即呈现正常态)

HarmonyOS
2024-05-26 15:06:03
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
dickhome

使用的核心API

核心代码解释

@Entry 
@Component 
struct Page23 { 
  private arr: number[] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 
  private normalColor: Color = 0xFFFF00; 
  private pressedColor: Color = 0x00FF00; 
  @State bgColor: Color = this.pressedColor; 
  
  build() { 
    List() { 
      ForEach(this.arr, (item: number) => { 
        ListItem() { 
          Column() { 
            Text('#芒格去在guopiao投资领域有一番作为了吗?这实在太诱人了。\n\n听完演讲后,我回去立刻找来了有关巴菲特的所有图书,包括他致伯克希尔·哈撒韦公司股东的年信及各种关于他的研究,也了解到芒格先生是巴菲特先生几十年来形影不离的合伙人,然后整整花了一两年的时间来彻底地研究他们') 
              .width('100%') 
          }.stateStyles({ 
            normal: { 
              .backgroundColor(this.normalColor) 
            }, 
            pressed: { 
              .backgroundColor(this.bgColor) 
            }, 
            focused: { 
              .backgroundColor(0xFF0000) 
            } 
          }) 
          .margin({ 
            top: 5, 
            bottom: 5 
          }) 
        } 
      }, (item: number) => item + '') 
    } 
    .onScrollStart(() => { //滑动开始时,设置按压态颜色为normalColor 
      this.bgColor = this.normalColor 
    }) 
    .onScrollStop(() => { // 滑动结束时,设置按压态颜色为pressedColor 
      this.bgColor = this.pressedColor 
    }) 
  } 
}
分享
微博
QQ
微信
回复
2024-05-27 20:06:44
相关问题
ArkTS中如何监听状态变量的变化?
44浏览 • 1回复 待解决
关于状态变量@state必须知道的事
319浏览 • 1回复 待解决
TextInput按压背景色如何修改
880浏览 • 1回复 待解决
如何监听List组件的总滑动距离
739浏览 • 1回复 待解决
实现层叠广告滑动效果
398浏览 • 1回复 待解决
监听pdf是否已经滑动到最底部失败
567浏览 • 1回复 待解决
scrolllist的嵌套滑动
458浏览 • 1回复 待解决
滑动组件如何实现单边spring的效果
523浏览 • 1回复 待解决
周日历滑动,以周为一个单位滑动
364浏览 • 1回复 待解决
Scroll与WaterFlow滑动嵌套
448浏览 • 1回复 待解决