按钮内子控件如何动态更新

按钮内子控件如何动态更新

HarmonyOS
2024-05-26 15:44:16
浏览
已于2024-5-26 15:47:06修改
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zbw_apple

本文主要介绍如何实现按钮内子控件文本控件与图片控件动态更新。开发者可以通过@State修饰的变量来控制文本控件以及图片控件的更新。

我们可以通过Button按钮的onClick事件来修改@State修饰的变量,这样,我们通过点击按钮就可以达到动态更新按钮内子控件信息的效果。

使用的核心API

  •  Button
  •  Image
  •  Column
  •  Row
  •  onClick
  •  Text

核心代码解释

想要实现按钮内子控件文本控件与图片控件动态更新,可以使用@State修饰变量,通过onClick事件来控制实现。

核心代码如下:

//按钮内子控件如何动态更新 
@Entry 
@Component 
struct Index { 
@State text:string | ResourceStr = '这是一张图片' 
@State img:Resource = $r('app.media.img') 
@State flag: boolean = false 
build(){ 
Column({space: 20}){ 
Text('按钮内子控件如何动态更新') 
.fontSize(24) 
.fontWeight(FontWeight.Bold) 
.fontColor(Color.Blue) 
  
      Button({ type: ButtonType.Normal, stateEffect: true }){ 
        Row() { 
          Text(this.text) //按钮内文本控件 
            .fontSize(16) 
            .fontColor(Color.Yellow) 
            .fontWeight(FontWeight.Bold) 
            .width('40%') 
  
          Image(this.img) //按钮内图片控件 
            .width(200) 
            .height(200) 
        } 
        .width('90%') 
        .height(200) 
      } 
  
      //动态更新文本控件以及图片控件的内容 
      Button('更新图片文字') 
        .onClick(()=>{ 
          if(!this.flag){ 
            this.text = '这是一张新的图片' 
            this.img = $r('app.media.img') 
            this.flag = !this.flag 
          }else { 
            this.text = '一张新的图片' 
            this.img = $r('app.media.img_1') 
            this.flag = !this.flag 
          } 
  
      }) 
  
    } 
    .width('100%') 
    .height('100%') 
    .justifyContent(FlexAlign.Center) 
} 
}
分享
微博
QQ
微信
回复
2024-05-27 20:46:29
相关问题
Canvas绘制内容如何动态更新
1643浏览 • 1回复 待解决
HarmonyOS中如何动态控制控件属性?
171浏览 • 0回复 待解决
如何动态更新全局@Builder
624浏览 • 1回复 待解决
JS 获取控件位置并动态赋值的问题
4024浏览 • 1回复 待解决