HarmonyOS Slider showTips

​Slider showTips 想使用这个作为音乐播放器的进度条,显示的时间格式是 12:12:12 这样的话,目前直接截断显示了。

看文档里边有个设置说是能够显示,描述如下:

value:设置滑动时是否显示气泡提示。

默认值:false

content:设置气泡提示的文本内容,默认显示当前百分比。

从API version 9开始,该接口支持在ArkTS卡片中使用。

说明:

当direction的值为Axis.Horizontal时,tip显示在滑块正上方。值为Axis.Vertical时,tip显示在滑块正左边。

tip的绘制区域为Slider自身节点的overlay。

Slider不设置边距或者边距比较小时,tip会被截断。

这个要怎么设置,帮忙给个例子。​

HarmonyOS
7天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
Heiang

请参考以下自定义slider自带的tips样式:

const BLOCK_DEFAULT_BORDER_WIDTH = 4; 
 
@Entry 
@Component 
struct SliderIndex { 
  @State isTipShow: boolean = false; 
  @State tipsOffset: number = 0; 
  private slideHeight: number = 300; 
  private blockSize: number = 20; 
  private tipHeight: number = 40; 
  private hideTipTask?: number; 
 
  private showTip(value: number) { 
    this.isTipShow = true 
    let percent = Number((value / 100).toFixed(2)); 
    this.tipsOffset = (this.slideHeight - this.blockSize - BLOCK_DEFAULT_BORDER_WIDTH * 2) * percent - (this.tipHeight / 2 - (this.blockSize / 2 + BLOCK_DEFAULT_BORDER_WIDTH)); 
  } 
 
  private hideTip() { 
    clearTimeout(this.hideTipTask) 
    this.hideTipTask = setTimeout(() => { 
      this.isTipShow = false 
    }, 3000) 
  } 
 
  build() { 
    Row() { 
      Slider({ direction: Axis.Vertical, }) 
        .height(this.slideHeight) 
        .selectedColor(Color.Green) 
        .trackColor('#5a5a5a') 
        .trackThickness(10) 
        .blockSize({ width: this.blockSize, height: this.blockSize }) 
        .selectedColor('#FF6103') 
        .onChange((value: number, mode: SliderChangeMode) => { 
          switch (mode) { 
            case SliderChangeMode.Moving: 
            case SliderChangeMode.Click: 
              this.showTip(value); 
              break; 
            case SliderChangeMode.End: 
              this.hideTip(); 
              break; 
          } 
        }) 
      if (this.isTipShow) { 
        Text("i am tip!") 
          .fontSize(12) 
          .height(this.tipHeight) 
          .offset({ y: this.tipsOffset }) 
          .fontColor(Color.White) 
          .backgroundColor("#66000000") 
          .padding(10) 
          .borderRadius(5) 
          .hitTestBehavior(HitTestMode.Transparent) 
      } 
    } 
    .alignItems(VerticalAlign.Top) 
    .padding(20) 
    .height('100%') 
    .width('100%') 
  } 
}
分享
微博
QQ
微信
回复
6天前
相关问题
HarmonyOS Slider UI展示问题
291浏览 • 1回复 待解决
HarmonyOS Slider滑动问题
205浏览 • 1回复 待解决
HarmonyOS 自定义Slider样式
223浏览 • 1回复 待解决
Slider拦截点击事件失败
183浏览 • 1回复 待解决
如何监听Slider滑动结束
329浏览 • 1回复 待解决
如何修改Slider滑块的颜色?
301浏览 • 1回复 待解决
JS的Slider旋转问题有知道的吗?
3147浏览 • 1回复 待解决
如何实现纵向且逆向滑动的Slider
335浏览 • 1回复 待解决
HarmonyOS HarmonyOS社区组件问题
181浏览 • 1回复 待解决
HarmonyOS LazyForEach
243浏览 • 1回复 待解决
HarmonyOS TabContent
382浏览 • 1回复 待解决
HarmonyOS responseRegion
100浏览 • 1回复 待解决
HarmonyOS setResponseData问题
285浏览 • 1回复 待解决
HarmonyOS fileAccess使用
379浏览 • 1回复 待解决
HarmonyOS NodeContainer咨询
241浏览 • 1回复 待解决
HarmonyOS Web onWindowNew?
34浏览 • 0回复 待解决
HarmonyOS AVPlayer XComponent
266浏览 • 1回复 待解决