HarmonyOS DatePicker最小时间设置后,滚动区域依然可看到越界时间

日期滚动区域小于start的日期依旧可以看见。如何和年、月、显示区域统一,只显示可选择的日期范围。

HarmonyOS
2024-10-15 12:15:02
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zxjiu

目前DatePicker规格如此,如果年份设置到2025年月份也出现,如果不想看到越界时间,可以使用TextPicker来自定义实现,可以参考下这个demo:

// xxx.ets  
@Entry  
@Component  
struct TextPickerExample {  
  private select: number = 0  
  @State year: string[] = ['2024', '2025', '2026', '2027']  
  @State month: string[] = ['5', '6', '7', '8']  
  @State day: string[] = ['17', '18', '19', '20']  
  build() {  
    Column() {  
      Row() {  
        TextPicker({ range: this.year, selected: this.select })  
          .onChange((value: string | string[], index: number | number[]) => {  
            console.info('Picker item changed, value: ' + value + ', index: ' + index)  
          })  
          .disappearTextStyle({ color: Color.Red, font: { size: 15, weight: FontWeight.Lighter } })  
          .textStyle({ color: Color.Black, font: { size: 20, weight: FontWeight.Normal } })  
          .canLoop(false)  
          .selectedTextStyle({ color: Color.Blue, font: { size: 30, weight: FontWeight.Bolder } })  
        TextPicker({ range: this.month, selected: this.select })  
          .onChange((value: string | string[], index: number | number[]) => {  
            console.info('Picker item changed, value: ' + value + ', index: ' + index)  
            if (value == '5') {  
              this.day = ['17', '18', '19', '20']  
            } else {  
              this.day = ['21', '22']  
            }  
          })  
          .disappearTextStyle({ color: Color.Red, font: { size: 15, weight: FontWeight.Lighter } })  
          .textStyle({ color: Color.Black, font: { size: 20, weight: FontWeight.Normal } })  
          .canLoop(false)  
          .selectedTextStyle({ color: Color.Blue, font: { size: 30, weight: FontWeight.Bolder } })  
        TextPicker({ range: this.day, selected: this.select })  
          .onChange((value: string | string[], index: number | number[]) => {  
            console.info('Picker item changed, value: ' + value + ', index: ' + index)  
          })  
          .disappearTextStyle({ color: Color.Red, font: { size: 15, weight: FontWeight.Lighter } })  
          .textStyle({ color: Color.Black, font: { size: 20, weight: FontWeight.Normal } })  
          .canLoop(false)  
          .selectedTextStyle({ color: Color.Blue, font: { size: 30, weight: FontWeight.Bolder } })  
      }  
    }.width('100%').height('100%')  
  }  
}
分享
微博
QQ
微信
回复
2024-10-15 16:46:14
相关问题
HarmonyOS 时间戳转时间
155浏览 • 1回复 待解决
HarmonyOS DatePicker如何取消循环滚动
183浏览 • 1回复 待解决
需要提供曝光时间设置接口
1721浏览 • 1回复 待解决
HarmonyOS 本地时间和UTC时间的问题
92浏览 • 1回复 待解决
HarmonyOS 如何获取当前时间时间
247浏览 • 1回复 待解决
HarmonyOS 时间戳如何转换为时间
125浏览 • 1回复 待解决
如何获取当前系统时间时间
1177浏览 • 1回复 待解决
鸿蒙 通知如何设置已经显示的时间
6632浏览 • 1回复 待解决
HarmonyOS 时间戳转换
137浏览 • 1回复 待解决
HarmonyOS 获取时间
254浏览 • 1回复 待解决
HarmonyOS 时间戳运用
1111浏览 • 1回复 待解决
HarmonyOS 获取当前时间
512浏览 • 1回复 待解决
HarmonyOS 组件能否设置最小宽度
102浏览 • 1回复 待解决