首页 > 编程语言 >【JAVA UI】【HarmonyOS】 鸿蒙setBindStateChangedListener的基本使用

【JAVA UI】【HarmonyOS】 鸿蒙setBindStateChangedListener的基本使用

时间:2022-09-07 15:02:50浏览次数:101  
标签:JAVA component void Component HarmonyOS UI 组件 public setBindStateChangedListener

​ 参数讲解

setBindStateChangedListener(Component.BindStateChangedListener)

方法说明:该组件是否添加到窗口的组件树上

示例

findComponentById(ResourceTable.Id_text_helloworld).setBindStateChangedListener(new Component.BindStateChangedListener() {
            @Override
            public void onComponentBoundToWindow(Component component) {
                //todo 当组件绑定到窗口时调用
            }
            @Override
            public void onComponentUnboundFromWindow(Component component) {
                //todo 当组件从窗口解除绑定时调用。
            }
        });

 

 

【问题描述】

问题1:调用TextField.getLineCount()获取行数闪退

问题2:怎么使用getLineCount(),

【问题解答】

问题1:调用TextField.getLineCount()获取行数闪退

答:

参考如下链接

https://developer.harmonyos.com/cn/docs/documentation/doc-references/text-0000001054838676#ZH-CN_TOPIC_0000001054838676__getLineCount--

cke_3288.png

此api从Api Version 7 开始支持

问题2:怎么使用getLineCount(),

答:

代码如下

textField.setBindStateChangedListener(new Component.BindStateChangedListener() {
            @Override
            public void onComponentBoundToWindow(Component component) {
                int count1=textField.getLineCount();
                Text mytext=findComponentById(ResourceTable.Id_mytext);
                mytext.setText("#####行数"+count1);
            }

            @Override
            public void onComponentUnboundFromWindow(Component component) {

            }
        });

 

【问题描述】

首页有个动画-安装应用后自动启动动画,执行启动的代码,然后该动画不能启动,单给在点击事件中执行动画的代码,动画生效,这是什么原因?应该怎么处理呢?

【问题解答】

当组件没有添加到窗口的组件树,支持该动画是不生效,需要监听该组件是否添加到窗口的组件树上,代码如下

findComponentById(ResourceTable.Id_text_helloworld).setBindStateChangedListener(new Component.BindStateChangedListener() {
            @Override
            public void onComponentBoundToWindow(Component component) {
                AnimationImage = findComponentById(ResourceTable.Id_text_helloworld);
                AnimationImage.setRotation(0);
                AnimatorProperty animator = AnimationImage.createAnimatorProperty();
                animator.setCurveType(Animator.CurveType.LINEAR);
                animator.setLoopedCount(AnimatorValue.INFINITE);
                animator.rotate(360);
                animator.setDuration(10000);
                animator.start();

            }

            @Override
            public void onComponentUnboundFromWindow(Component component) {

            }
        });

​欲了解更多更全技术文章,欢迎访问https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh

标签:JAVA,component,void,Component,HarmonyOS,UI,组件,public,setBindStateChangedListener
From: https://www.cnblogs.com/developer-huawei/p/16665442.html

相关文章

  • Java 基础三、接口与内部类
    1.  在Java程序语言中,接口是对类的一种描述。例如Arrays类中sort方法声明可以对对象进行排序,但前提是对象所属的类必须实现Comparable接口。publicinterfaceComparab......
  • Mysql异常——com.alibaba.druid.sql.parser.ParserException
    今天写业务逻辑时候,写完发现控制台出现报错,但是程序可以正常运行。在控制台报错中发现是因为SQL模糊查询格式问题修改模糊查询写法后成功解决该报错......
  • The following method did not exist: com.google.gson.GsonBuilder.setLenient()
    报错完整信息  原因:因为引入的jar包版本不对,里面没有com.google.gson.GsonBuilder.setLenient()这个方法。解决方案:1、引入版本对应的jar包2、排除springBoot中......
  • 【FAQ】【JAVA UI】HarmonyOS如何添加创建快捷键
    ​ 【问题描述】HarmonyOS如何添加创建快捷键? 【问题答案】参考资料配置文件说明(Java)config.json配置config.json添加shortcuts标签,代码如下"shortcuts":[......
  • Java实现图片转base64字符串和图片互相转换
    importsun.misc.BASE64Decoder;importsun.misc.BASE64Encoder;importjava.io.*;/***@Description:*@Author:Han*@CreateDate:2022/9/7**/publicc......
  • java产生一个随机数
    //随机产生8位数StringBuilderstr=newStringBuilder();//定义变长字符串Randomrandom=newRandom();//随机生成数字,并添加到字符串for(inti=0;i<8;i++){str.a......
  • JAVA 几种常见的 ENUM
    方法一:常量在JDK1.5之前,我们定义常量都是:publicstaticfianl....。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法publicen......
  • java学习笔记20
    增强for循环JAVA5引入一种主要用于数组或集合的增强型for循环格式如下for(声明语句:表达式){//代码句子}publicclassForDemo05{  publicstaticvoidmain(Strin......
  • java8新特性:方法引用
    java8新特性:方法引用我们用Lambda表达式来实现匿名方法。但有些情况下,我们用Lambda表达式仅仅是调用一些已经存在的方法,除了调用动作外,没有其他任何多余的动作,在这种情况......
  • Kruise Rollout:灵活可插拔的渐进式发布框架
    简介: KruiseRollout是OpenKruise社区开源的渐进式交付框架。KruiseRollout支持配合流量和实例灰度的金丝雀发布、蓝绿发布、A/BTesting发布,以及发布过程能够基于......