HarmonyOS-UIAbitity-Button——【坚果派-红目香薰】

举报
红目香薰 发表于 2024/03/31 18:06:53 2024/03/31
【摘要】 ​摘要作者:红目香薰团队:坚果派 团队介绍:坚果派由坚果创建,团队拥有12个华为HDE以及若干其他领域的三十余位万粉博主运营。 目录摘要HarmonyOS-UIAbitity-Button设置按钮样式设置按钮点击事件包含子组件按钮常用场景HarmonyOS-UIAbitity-ButtonButton组件主要用来响应点击操作,可以包含子组件。​编辑样式源码:@Entry@Components...

摘要

作者:红目香薰
团队:坚果派
团队介绍:坚果派由坚果创建,团队拥有12个华为HDE以及若干其他领域的三十余位万粉博主运营。 

目录

摘要

HarmonyOS-UIAbitity-Button

设置按钮样式

设置按钮点击事件

包含子组件

按钮常用场景


HarmonyOS-UIAbitity-Button

Button组件主要用来响应点击操作,可以包含子组件。

编辑

样式源码:

@Entry@Component

struct Index {

build() {

Row() {

Column() {

Text('登录页面').height(120).fontSize(50).fontColor('#3592C4')

TextInput({ placeholder: "请输入账号" })

.height(120)

.fontSize(50)

.borderStyle(BorderStyle.Solid)

.borderWidth(2)

TextInput({ placeholder: "请输入密码" })

.type(InputType.Password)

.height(120)

.fontSize(50)

.borderStyle(BorderStyle.Solid)

.borderWidth(2)

Button('登录', { type: ButtonType.Capsule, stateEffect: true })

.width('90%')

.height(80)

.fontSize(16)

.fontWeight(FontWeight.Medium)

.backgroundColor('#007DFF')

}.width('100%')


}

.width('100%')

.height('100%')

}

}

设置按钮样式

type用于定义按钮样式,示例代码中ButtonType.Capsule表示胶囊形按钮;stateEffect用于设置按钮按下时是否开启切换效果,当状态置为false时,点击效果关闭,默认值为true。

我们可以设置多种样式的Button,除了Capsule可以以设置Normal和Circle:

Capsule:胶囊型按钮(圆角默认为高度的一半)。
Circle:圆形按钮。
Normal:普通按钮(默认不带圆角)。

设置按钮点击事件

可以给Button绑定onClick事件,每当用户点击Button的时候,就会回调执行onClick方法,调用里面的逻辑代码。

​编辑​编辑

import router from '@ohos.router';

let msg: string = "Index 页面过来的数据,过来了代表登录成功,但未进行账号密码验证";

@Entry@Component

struct Index {

build() {

Row() {

Column() {

Text('登录页面').height(120).fontSize(50).fontColor('#3592C4')

TextInput({ placeholder: "请输入账号" })

.height(120)

.fontSize(50)

.borderStyle(BorderStyle.Solid)

.borderWidth(2)

TextInput({ placeholder: "请输入密码" })

.type(InputType.Password)

.height(120)

.fontSize(50)

.borderStyle(BorderStyle.Solid)

.borderWidth(2)

Button('登录', { type: ButtonType.Capsule, stateEffect: true })

.width('90%')

.height(80)

.fontSize(16)

.fontWeight(FontWeight.Medium)

.backgroundColor('#007DFF')

.onClick(() => {

router.pushUrl({

url: "pages/MyETS",

params: {

msg_info: msg

}

})

})

}.width('100%')


}

.width('100%')

.height('100%')

}

}

包含子组件

Button组件可以包含子组件,让您可以开发出更丰富多样的Button。

编辑

源码:

@Entry@Component

struct Index {

build() {

Row() {

Column() {

Button({ type: ButtonType.Circle, stateEffect: true }) {

Image($r('app.media.2'))

.width(200)

.height(400)

.borderRadius(90)

}

.width(420)

.height(620)

.backgroundColor(0x317aff)

}.width('100%')


}

.width('100%')

.height('100%')

}

}

 图片设置borderRadius后就会出现倒角的效果,这里的度数需要自己来掌握,一般情况下45就比较合适了,我这个是长图,不是方图,所以我写了个大度数,下面是45的效果:

编辑

两种效果还是挺明显的,看个人情况来选择即可。

按钮常用场景

显示文本或图标:在XML布局文件中,您可以使用Button元素来创建一个按钮,并为其分配一个唯一的ID。然后在Java代码中,您可以使用findViewById()方法获取该按钮对象,并使用setText()或setCompoundDrawables()方法设置按钮上的文本或图标。

添加点击事件监听器:要响应用户点击按钮,您需要为按钮添加一个点击事件监听器。您可以使用setOnClickListener()方法将一个OnClickListener接口的实现类对象设置为按钮的点击事件监听器。当用户点击按钮时,该实现类中的onClick()方法将被调用。

自定义样式:您可以使用XML布局文件中的style属性来设置按钮的样式,例如大小、颜色、背景图片等。您还可以使用主题(Theme)和主题资源(Theme.AppCompat或Theme.Material等)来定义自己的样式。

禁用按钮:为了防止用户误操作,您可以使用setEnabled()方法禁用按钮。当按钮被禁用时,用户将无法点击它。

响应长按事件:如果您希望在用户长按按钮时执行某些操作,可以使用setOnLongClickListener()方法添加一个长按事件监听器。当用户长按按钮时,该监听器中的onLongPress()方法将被调用。

添加自定义视图:您可以使用setCompoundDrawablesWithIntrinsicBounds()方法将自定义视图设置为按钮的图标。这允许您在按钮上放置其他自定义视图,例如圆形图片或文本标签。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。