HarmonyOS 鸿蒙Next如何关闭按钮背景色的转场动画
HarmonyOS 鸿蒙Next如何关闭按钮背景色的转场动画
build() {
Column() {
this.PermissionDialog();
}
.borderRadius(vpAdaptDefault(this.borderRadiusValue))
.backgroundColor($r('sys.color.ohos_id_color_dialog_bg'))
.padding({left: vpAdaptDefault(this.marginValue), right: vpAdaptDefault(this.marginValue) })
.width(this.dlgWidth)
.margin({ left: this.marginValueOfCol, right: this.marginValueOfCol })
}
@Builder
PermissionDialog() {
Column() {
Column() {
Text($r('app.string.input_method_permission_instruction_title'))
.fontSize(this.getFontSize(SpecConstantsOfSetting.FONT_SIZE_COMMON_V_20))
.fontWeight(FontWeight.Bold)
}
.justifyContent(FlexAlign.Center)
.margin({
top: SpecConstantsOfSetting.PADDING_OR_MARGIN_COMMON_V_16,
bottom: SpecConstantsOfSetting.PADDING_OR_MARGIN_COMMON_V_4
})
Column() {
Text(this.getDesc())
.fontSize(SpecConstantsOfSetting.FONT_SIZE_COMMON_V_12)
.fontColor($r('sys.color.ohos_id_color_text_secondary'))
.fontWeight(FontWeight.Regular)
.width('100%')
}
.padding({
left: SpecConstantsOfSetting.PADDING_OR_MARGIN_COMMON_V_16,
right: SpecConstantsOfSetting.PADDING_OR_MARGIN_COMMON_V_16
})
.margin({
bottom: SpecConstantsOfSetting.PADDING_OR_MARGIN_COMMON_V_8
})
.width(this.dlgSubTitleWidth)
.justifyContent(FlexAlign.Center)
Column() {
this.Content();
}
.width(this.dlgContextWidth)
Column() {
Button($r('app.string.dialog_btn_confirm'), { type: ButtonType.Capsule, stateEffect: true })
.fontSize(this.getFontSize(SpecConstantsOfSetting.FONT_SIZE_COMMON_V_16))
.fontColor($r('sys.color.font_emphasize'))
.fontWeight(FontWeight.Medium)
.width('100%')
.backgroundColor(Color.White)
.onClick(() => {
this.confirm?.();
this.controller?.close();
})
}
.width('100%')
.justifyContent(FlexAlign.Center)
.margin({
top: SpecConstantsOfSetting.PADDING_OR_MARGIN_COMMON_V_16,
bottom: SpecConstantsOfSetting.PADDING_OR_MARGIN_COMMON_V_16
})
.padding({
left: SpecConstantsOfSetting.PADDING_OR_MARGIN_COMMON_V_16,
right: SpecConstantsOfSetting.PADDING_OR_MARGIN_COMMON_V_16
})
}
}
更多关于HarmonyOS 鸿蒙Next如何关闭按钮背景色的转场动画的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
stateEffect: 按钮按下时是否开启按压态显示效果,当设置为false时,按压效果关闭。
更多关于HarmonyOS 鸿蒙Next如何关闭按钮背景色的转场动画的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
Button($r('app.string.dialog_btn_confirm'), { type: ButtonType.Capsule, stateEffect: true })
.fontSize(this.getFontSize(SpecConstantsOfSetting.FONT_SIZE_COMMON_V_16))
.fontColor($r('sys.color.font_emphasize'))
.fontWeight(FontWeight.Medium)
.width('100%')
.backgroundColor(Color.White)
.stateEffect(false)
.onClick(() => {
this.confirm?.();
this.controller?.close();
})
不是,是按钮加载的时候会闪一下,好像是从默认背景色变成了设置的背景色
设置stateEffect属性为false,然后用多态设置按压状态样式试下
@Styles normalStyle() { .backgroundColor(Color.White) }
@Styles pressedStyle() { .backgroundColor(Color.Gray) }
Button(('dialog_btn_confirm'), { type: ButtonType.Capsule, stateEffect: false })
.fontSize(16)
.fontColor($r('sys.color.font_emphasize'))
.fontWeight(FontWeight.Medium)
.width('100%')// .stateEffect(false)
.onClick(() => {
})
.stateStyles({
normal: this.normalStyle,
pressed: this.pressedStyle,
})
在HarmonyOS 鸿蒙Next系统中,关闭按钮背景色的转场动画可以通过修改XML布局文件或直接在代码中设置动画属性来实现。具体操作如下:
-
XML布局文件修改: 在按钮的XML定义中,通过添加或修改动画属性来禁用背景色转场动画。例如,使用
transitionName
属性来控制动画效果,将其设置为空字符串或移除相关动画引用。但HarmonyOS中具体属性可能不同,通常可通过ohos:background_element_transition
来直接控制背景元素的过渡效果,设置为none
即可禁用。<Button ohos:id="$+id:my_button" ohos:width="match_parent" ohos:height="wrap_content" ohos:text="Click Me" ohos:background_element_transition="none"/>
-
代码设置: 在JavaScript或ETS代码中,通过按钮的实例直接设置动画属性为禁用状态。如果HarmonyOS提供了相应的API来控制动画,可以使用类似
component.setTransition(null)
或相关API来禁用动画,但具体API需查阅官方文档。let button = this.$element('my_button'); button.setTransitionEffect('none'); // 假设有此类API,实际需查阅文档
如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html