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

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

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
相关问题
状态变量常规变量有什么区别?
387浏览 • 2回复 待解决
ArkTS中如何监听状态变量的变化?
847浏览 • 1回复 待解决
HarmonyOS 状态变量不刷新问题
331浏览 • 1回复 待解决
关于状态变量@state必须知道的事
1005浏览 • 1回复 待解决
HarmonyOS 如何实现滑动监听
229浏览 • 1回复 待解决
HarmonyOS Image 按压设置
177浏览 • 2回复 待解决
如何监听Slider滑动结束
352浏览 • 1回复 待解决
TextInput按压背景色如何修改
2334浏览 • 1回复 待解决
如何取消Button默认的按压效果?
534浏览 • 1回复 待解决