HarmonyOS picker 如何实现“展示和选中内容不一样”

HarmonyOS  picker 如何实现“展示和选中内容不一样”。

HarmonyOS
2024-09-25 12:24:21
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zxjiu

当前textPicker不支持label/value形式:可以获取选择器值的索引,根据索引自行封装映射。

下面一个demo可以参考:

interface Fruits {  
  id: number  
  name: string  
}  
  
@Entry  
@Component  
struct TextPickerExample {  
  private select: number = 1  
  private fruitsList: Fruits[] = [  
    { id: 1, name: "apple1" },  
    { id: 2, name: "orange2" },  
    { id: 3, name: "peach3" },  
    { id: 4, name: "grape4" },  
  ]  
  
  build() {  
    Column() {  
      TextPicker({ range: this.fruitsList.map((item) => item.name), selected: this.select })  
        .onChange((value: string | string[], index: number | number[]) => {  
          console.info('Picker item changed, value: ' + value + ', index: ' + index)  
          this.fruitsList[index.toString()].id;  
        })  
        .disappearTextStyle({ color: Color.Red, font: { size: 15, weight: FontWeight.Lighter } })  
        .textStyle({ color: Color.Black, font: { size: 20, weight: FontWeight.Normal } })  
        .selectedTextStyle({ color: Color.Blue, font: { size: 30, weight: FontWeight.Bolder } })  
    }.width('100%').height('100%')  
  }  
}
分享
微博
QQ
微信
回复
2024-09-25 16:25:58
相关问题
鸿蒙安卓有什么不一样
6323浏览 • 3回复 待解决
Web组件获取高度不一样
2142浏览 • 1回复 待解决
JS swiper 怎么像list一样动态添加item?
6241浏览 • 1回复 待解决