(鸿蒙开发笔记)鸿蒙滑杆控件实时侦听

刚学 HarmonyOS不久,对着开发者文档学习以及视频了一段时间,目前还是针对控件以及布局的学习,以下内容描述内容可能与开发者文档描述有差异,学习到滑杆控件时发现文档没有具体描述,所以不懂具体属性以及使用,网络上难以找到具体文献,游荡在鸿蒙开源项目组件库里终于发现了类似的内容,结合内容也终于实现了侦听(真是累死小白),具体实现如下:
HarmonyOS Slider控件侦听,主要使用的是setValueChangedListener,此方法提供了onProgressUpdated,onTouchStart,onTouchEnd三个重写方法,看方法也能知道每个方法的作用,具体就不多说,可以尝试,以下是实现案例:

Slider_layout.xml布局:

<?xml version="1.0" encoding="utf-8"?>
<DirectionalLayout
    xmlns:ohos="http://schemas.huawei.com/res/ohos"
    ohos:height="match_parent"
    ohos:width="match_parent"
    ohos:orientation="vertical">
  <Slider
      ohos:margin="40px"
      ohos:height="50vp"
      ohos:width="400vp"
      ohos:id="$+id:sld1"
       ohos:orientation="horizontal"
      ohos:min="0"
      ohos:max="100"
      ohos:progress="40"
      ohos:background_element="$graphic:background_slider"
      ohos:progress_element="#6E6E6E"/>
   <Text
       ohos:left_margin="40px"
       ohos:height="match_content"
       ohos:width="match_content"
       ohos:text_size="30fp"
       ohos:text_color="#444"
       ohos:text_font="sans-serif"
       ohos:id="$+id:Stxt1"
       ohos:text="初始值:40"/>
</DirectionalLayout>

背景资源:
background_slider.xml:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:ohos="http://schemas.huawei.com/res/ohos" ohos:shape="rectangle">
    <solid ohos:color="#5882FA"/>
    <corners ohos:radius="40"/>
    <stroke   ohos:width="1vp" ohos:color="#848484"/>
</shape>

SliderSlice:

public class SliderSlice extends AbilitySlice {
    @Override
    protected void onStart(Intent intent) {
        super.onStart(intent);
        super.setUIContent(ResourceTable.Layout_slider_layout);
        Slider sdel =(Slider)findComponentById(ResourceTable.Id_sld1);
        Text t1 = (Text) findComponentById(ResourceTable.Id_Stxt1);
        if (sdel!=null){
            //监听当前数值的变化
           sdel.setValueChangedListener(new Slider.ValueChangedListener() {
               @Override
               public void onProgressUpdated(Slider slider, int i, boolean b) {
                 if (t1!=null){
                     t1.setText("当前值:"+i);
                     if (i>70){
                         new ToastDialog(getContext())
                                 .setText("超出安全数值")
                                 .show();
                     }
                 }
               }
               @Override
               public void onTouchStart(Slider slider) {

               }

               @Override
               public void onTouchEnd(Slider slider) {

               }
           });
        }
    }
}

不要问为什么注释介么少(我懒啊)。
接下来是实现效果:
在这里插入图片描述
滑动滑杆时数值也会实时变化。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值