CustomTitleAndEditUI.ets 1.89 KB
import router from '@ohos.router'

@Component
export struct CustomTitleAndEditUI {
  imgBack:boolean = true
  titleName:string = "默认标题"
  @Link isDisplayButton:boolean
  @Consume isEditState:boolean
  editCallback: () => void = () => {
  }
  build() {
    RelativeContainer() {
      //标题栏目
      if(this.imgBack){
        Image($r('app.media.back_icon'))
          .width('46lpx')
          .height('46lpx')
          .objectFit(ImageFit.Auto)
          .interpolation(ImageInterpolation.High)
          .id("back_icon")
          .alignRules({
            center: {anchor: "__container__", align: VerticalAlign.Center},
            left: {anchor: "__container__", align: HorizontalAlign.Start}
          })
          .margin({left:'31lpx'})
          .onClick(()=>{
            router.back()
          })
      }

      Text(this.titleName)
        .height('42lpx')
        .maxLines(1)
        .id("title")
        .fontSize('35lpx')
        .fontWeight(400)
        .fontColor($r('app.color.color_222222'))
        .lineHeight('42lpx')
        .alignRules({
          center: {anchor: "__container__", align: VerticalAlign.Center},
          middle: {anchor: "__container__", align: HorizontalAlign.Center}
        })

      if (this.isDisplayButton){
        Button(this.isEditState === true?'取消':'编辑')
          .type(ButtonType.Normal)
          .fontColor($r('app.color.color_222222'))
          .backgroundColor(Color.White)
          .id("edit_Button")
          .alignRules({
            center: {anchor: "__container__", align: VerticalAlign.Center},
            right: {anchor: "__container__", align: HorizontalAlign.End}
          })
          .margin({right:'31lpx'})
          .onClick(()=>{
            this.isEditState = !this.isEditState
            this.editCallback()
          })
      }
    }
    .height('84lpx')
    .width('100%')
    .backgroundColor($r('app.color.white'))

  }
}