谷歌外贸网站推广,建设了网站后怎么用谷歌引流,怎样做吧网站排名做上去,网站备案名称查询视频演示地址#xff1a; #x1f4cb; 目录
概述特性快速开始API 参考使用示例主题配置最佳实践常见问题总结 概述
SecondaryButton 是控件库中的次要按钮组件#xff0c;适用于次要操作场景。与 PrimaryButton 的主要区别在于#xff1a;
PrimaryButton#xff1a;实…视频演示地址 目录概述特性快速开始API 参考使用示例主题配置最佳实践常见问题总结概述SecondaryButton是控件库中的次要按钮组件适用于次要操作场景。与PrimaryButton的主要区别在于PrimaryButton实心背景用于主要操作如提交、“确认”SecondaryButton边框样式用于次要操作如取消、“返回”设计理念次要按钮采用边框样式设计具有以下特点视觉层次通过边框而非实心背景降低视觉权重操作区分与主要按钮形成明确的视觉对比品牌标识左下角自动包含品牌标识圆圈红字PC主题统一所有样式配置都在代码中方便定制特性✨ 核心特性✅边框样式带边框的次要按钮无实心背景✅多种尺寸支持 small、medium、large 三种尺寸✅图标支持支持左侧或右侧图标✅加载状态内置加载动画✅禁用状态支持禁用状态自动调整样式✅品牌标识自动包含左下角品牌标识✅主题配置所有样式都可通过代码配置 视觉特点正常状态蓝色边框 蓝色文字 白色背景悬停状态浅蓝色背景通过系统自动处理按下状态更深的背景色禁用状态灰色边框 灰色文字 50% 透明度快速开始基础用法import{SecondaryButton}from../components/baseEntry Component struct MyPage{build(){Column({space:20}){// 基础次要按钮SecondaryButton({text:取消})// 带图标的次要按钮SecondaryButton({text:返回,icon:$r(app.media.icon_back),iconPosition:left})}.width(100%).height(100%).padding(20).justifyContent(FlexAlign.Center)}}关于点击事件处理SecondaryButton的onClickBuilder属性是BuilderParam类型需要使用Builder或LocalBuilder方法初始化。在实际项目中推荐使用以下方式处理点击事件状态管理方式通过State变量和普通Button的onClick来处理自定义事件系统创建自定义事件处理机制Builder 方法如果需要使用onClickBuilder需要定义Builder方法本文档中的示例主要展示按钮的视觉效果和样式配置点击事件处理可以通过上述方式实现。与 PrimaryButton 配合使用Entry Component struct ButtonGroupExample{// 点击事件处理handleCancel(){console.info(取消操作)}handleConfirm(){console.info(确认操作)}build(){Row({space:12}){// 次要操作SecondaryButton({text:取消})// 主要操作PrimaryButton({text:确认})}.width(100%).justifyContent(FlexAlign.End)}}注意onClickBuilder是BuilderParam类型需要使用Builder或LocalBuilder方法初始化。如果需要处理点击事件建议通过状态管理或自定义事件系统实现。API 参考Props属性名类型默认值说明textstring按钮按钮文字iconResourceStr?undefined按钮图标可选iconPositionleft | rightleft图标位置buttonSizesmall | medium | largemedium按钮尺寸loadingbooleanfalse是否加载中disabledbooleanfalse是否禁用showBrandbooleantrue是否显示品牌标识buttonWidthstring | number?undefined按钮宽度可选buttonHeightstring | number?undefined按钮高度可选onClickBuilderBuilderParam () void?undefined点击事件回调需要使用 Builder 或 LocalBuilder 方法尺寸规格尺寸高度字体大小图标大小内边距small32vp12vp16vp12vp × 6vpmedium40vp14vp20vp16vp × 8vplarge48vp16vp24vp24vp × 12vp使用示例1. 基础按钮Entry Component struct ButtonExample1{build(){Column({space:15}){SecondaryButton({text:取消})SecondaryButton({text:返回})SecondaryButton({text:上一步})}.width(100%).height(100%).padding(20).justifyContent(FlexAlign.Center)}}2. 不同尺寸Entry Component struct ButtonExample2{build(){Column({space:15}){SecondaryButton({text:小按钮,buttonSize:small})SecondaryButton({text:中等按钮,buttonSize:medium})SecondaryButton({text:大按钮,buttonSize:large})}.width(100%).height(100%).padding(20).justifyContent(FlexAlign.Center)}}3. 图标按钮Entry Component struct ButtonExample3{build(){Column({space:15}){// 左侧图标SecondaryButton({text:下载,icon:$r(app.media.icon_download),iconPosition:left})// 右侧图标SecondaryButton({text:下一步,icon:$r(app.media.icon_arrow_right),iconPosition:right})// 仅图标通过空文字实现SecondaryButton({text:,icon:$r(app.media.icon_settings),buttonWidth:40,buttonHeight:40})}.width(100%).height(100%).padding(20).justifyContent(FlexAlign.Center)}}4. 加载状态Entry Component struct ButtonExample4{State loading:booleanfalse// 处理保存操作handleSave(){this.loadingtrue// 模拟异步操作setTimeout((){this.loadingfalseconsole.info(保存完成)},2000)}build(){Column({space:20}){SecondaryButton({text:保存,loading:this.loading})// 使用普通按钮触发加载状态Button(){Text(this.loading?保存中...:点击保存)}.onClick((){this.handleSave()}).enabled(!this.loading)Text(点击按钮查看加载状态).fontSize(12).fontColor(#999999)}.width(100%).height(100%).padding(20).justifyContent(FlexAlign.Center)}}说明由于onClickBuilder需要使用Builder方法这里使用普通Button来演示点击事件处理。实际项目中可以通过状态管理或自定义事件系统来处理按钮点击。5. 禁用状态Entry Component struct ButtonExample5{State formValid:booleanfalsebuild(){Column({space:20}){SecondaryButton({text:重置,disabled:!this.formValid})Text(表单验证通过后才能重置).fontSize(12).fontColor(#999999)}.width(100%).height(100%).padding(20).justifyContent(FlexAlign.Center)}}6. 按钮组合Entry Component struct ButtonExample6{build(){Column({space:20}){// 左右对齐的按钮组Row({space:12}){SecondaryButton({text:取消,buttonSize:medium})PrimaryButton({text:确认,buttonSize:medium})}.width(100%).justifyContent(FlexAlign.End)// 居中对齐的按钮组Row({space:12}){SecondaryButton({text:上一步,buttonSize:medium})SecondaryButton({text:下一步,buttonSize:medium})}.width(100%).justifyContent(FlexAlign.Center)}.width(100%).height(100%).padding(20)}}7. 自定义宽度Entry Component struct ButtonExample7{build(){Column({space:15}){SecondaryButton({text:全宽按钮,buttonWidth:100%,buttonSize:large})SecondaryButton({text:中等宽度60%,buttonWidth:60%,buttonSize:medium})SecondaryButton({text:固定宽度200vp,buttonWidth:200,buttonSize:small})}.width(100%).height(100%).padding(20).justifyContent(FlexAlign.Center)}}8. 表单场景Entry Component struct FormExample{State formData:{name:stringemail:string}{name:,email:}State submitting:booleanfalse// 重置表单handleReset(){this.formData{name:,email:}}// 提交表单handleSubmit(){if(!this.formData.name||!this.formData.email){return}this.submittingtrue// 模拟提交setTimeout((){this.submittingfalseconsole.info(提交成功)},2000)}build(){Column({space:20}){// 表单内容TextInput({placeholder:姓名}).onChange((value:string){this.formData.namevalue})TextInput({placeholder:邮箱}).onChange((value:string){this.formData.emailvalue})// 按钮组Row({space:12}){SecondaryButton({text:重置,disabled:this.submitting})PrimaryButton({text:提交,loading:this.submitting,disabled:!this.formData.name||!this.formData.email})}.width(100%).justifyContent(FlexAlign.End)// 使用普通按钮处理点击事件Row({space:12}){Button(重置表单).onClick((){this.handleReset()}).enabled(!this.submitting)Button(提交表单).onClick((){this.handleSubmit()}).enabled(!this.submittingthis.formData.namethis.formData.email)}.width(100%).justifyContent(FlexAlign.End)}.width(100%).height(100%).padding(20)}}说明在实际项目中可以通过状态管理或自定义事件系统来处理按钮点击事件。这里展示了如何通过普通Button来处理点击事件同时使用SecondaryButton和PrimaryButton来展示视觉效果。主题配置SecondaryButton 的所有样式都通过ComponentTheme配置所有配置都在代码中不依赖JSON文件。修改按钮颜色import{ComponentTheme}from../theme/ComponentTheme// 修改次要按钮文字颜色ComponentTheme.SECONDARY_BUTTON_TEXT_COLOR#007AFF// 修改次要按钮边框颜色ComponentTheme.SECONDARY_BUTTON_BORDER_COLOR#007AFF// 修改次要按钮悬停背景色ComponentTheme.SECONDARY_BUTTON_BACKGROUND_HOVER#F0F7FF// 修改次要按钮按下背景色ComponentTheme.SECONDARY_BUTTON_BACKGROUND_ACTIVE#E0EFFF// 修改禁用状态颜色ComponentTheme.SECONDARY_BUTTON_TEXT_DISABLED#CCCCCCComponentTheme.SECONDARY_BUTTON_BORDER_DISABLED#E5E5E5批量配置import{ComponentTheme}from../theme/ComponentTheme// 使用 setTheme 方法批量配置ComponentTheme.setTheme({primaryColor:#007AFF,borderRadius:8,spacing:16})自定义主题// 在应用启动时配置import{ComponentTheme}from./theme/ComponentTheme// 设置自定义次要按钮颜色ComponentTheme.SECONDARY_BUTTON_TEXT_COLOR#34C759// 绿色ComponentTheme.SECONDARY_BUTTON_BORDER_COLOR#34C759ComponentTheme.SECONDARY_BUTTON_BACKGROUND_HOVER#F0F9F4最佳实践1. 按钮组合使用推荐主要操作使用 PrimaryButton次要操作使用 SecondaryButtonRow({space:12}){SecondaryButton({text:取消})PrimaryButton({text:确认})}2. 尺寸选择small用于紧凑空间如表格操作列medium默认尺寸适用于大多数场景large用于重要操作或大屏幕显示3. 图标使用使用图标增强按钮的可识别性常用操作使用标准图标如返回、下载、设置图标位置根据阅读习惯选择中文左侧英文根据上下文4. 加载状态异步操作时显示加载状态加载期间自动禁用按钮操作完成后恢复按钮状态5. 禁用状态根据表单验证状态动态禁用提供明确的禁用原因提示避免频繁切换禁用状态6. 响应式设计使用百分比宽度适配不同屏幕在小屏幕上考虑使用全宽按钮保持按钮之间的合理间距常见问题Q1: SecondaryButton 和 PrimaryButton 有什么区别A: 主要区别在于视觉样式PrimaryButton实心背景用于主要操作SecondaryButton边框样式用于次要操作功能上两者基本相同都支持图标、加载、禁用等状态。Q2: 如何隐藏品牌标识A: 设置showBrand: falseSecondaryButton({text:按钮,showBrand:false})注意不推荐隐藏品牌标识这会影响控件库的识别性。Q3: 如何自定义按钮颜色A: 直接修改ComponentTheme中的静态属性ComponentTheme.SECONDARY_BUTTON_TEXT_COLOR#34C759ComponentTheme.SECONDARY_BUTTON_BORDER_COLOR#34C759Q4: 如何处理按钮点击事件A:onClickBuilder是BuilderParam类型需要使用Builder或LocalBuilder方法。推荐使用状态管理或自定义事件系统Entry Component struct MyPage{State count:number0// 方式1使用状态管理handleClick(){this.countconsole.info(按钮被点击)}// 方式2使用 Builder 方法如果需要使用 onClickBuilderBuilderonClickHandler(){this.countconsole.info(按钮被点击)}build(){Column({space:20}){// 使用普通按钮处理点击Button(点击我).onClick((){this.handleClick()})// 使用 SecondaryButton 展示样式SecondaryButton({text:次要按钮})Text(点击次数${this.count})}.width(100%).height(100%).padding(20)}}Q5: 如何实现按钮的悬停效果A: HarmonyOS 系统会自动处理按钮的悬停效果无需手动实现。如果需要自定义可以通过修改ComponentTheme中的悬停颜色配置。Q6: 按钮文字可以换行吗A: 按钮文字默认不换行。如果需要多行文字建议使用其他组件如 TextButton或自定义实现。总结SecondaryButton 是控件库中的次要按钮组件具有以下核心特性视觉层次通过边框样式降低视觉权重功能完整支持图标、加载、禁用等多种状态尺寸灵活三种尺寸满足不同场景需求易于使用简单的 API开箱即用主题配置所有样式都可通过代码配置品牌标识自动包含品牌标识保持视觉统一关键要点✅ 使用buttonSize属性选择合适尺寸✅ 使用loading属性处理异步操作✅ 使用disabled属性控制按钮状态✅ 通过ComponentTheme自定义样式✅ 与PrimaryButton配合使用形成清晰的视觉层次适用场景表单中的取消、重置按钮对话框中的次要操作按钮列表中的次要操作按钮需要降低视觉权重的操作按钮下一篇预告TextButton文本按钮详解本文档属于《鸿蒙PC UI控件库开发系列文章》第3篇