HarmonyOS 鸿蒙Next SideBarContainer使用

HarmonyOS 鸿蒙Next SideBarContainer使用

SideBarContainer 中点击左上角的ControlButton 有展示和隐藏动画,但是我们不需要这个ControlButton。但是需要展示和隐藏动画。  是否有API 在 不显示左上角的ControlButton时,还有进入和退出动画?

2 回复

参考一下如下demo,可以自定义动画

@Entry

@Component

struct SideBarContainerDemo {

  @State arr: number[] = [1, 2, 3]

  @State current: number = 1

  @State showSideBar: boolean = false

  @State showFlag: Visibility = Visibility.Hidden;

  // 延迟关闭侧边栏,让自定义的出场动画显示

  cancel() {

    this.showFlag = Visibility.Hidden

    setTimeout(() => {

      this.showSideBar = !this.showSideBar

    }, 1000)

  }

  build() {

    SideBarContainer(SideBarContainerType.Overlay) {

      Column() {

        ForEach(this.arr, (item: number) => {

        Column({ space: 5 }) {

          Text("Index0" + item )

            .fontSize(25)

          .fontColor(this.current === item ? '#0A59F7' : '#999')

          .fontFamily('source-sans-pro,cursive,sans-serif')

        }

        .onClick(() => {

          this.current = item

        })

        }, (item: string) => item)

      }

      .visibility(this.showFlag)

      .transition(TransitionEffect.OPACITY.animation({ duration: 1000 })

        .combine(TransitionEffect.translate({ x: 100 })))

      .width('100%')

      .justifyContent(FlexAlign.SpaceEvenly)

      .backgroundColor(Color.Pink)

      Column() {

        Button('打开侧边栏').onClick(() => {

          this.showFlag = Visibility.Visible

          this.showSideBar = true

        }

        )

        Button('关闭侧边栏').onClick(() => {

          this.cancel()

        })

      }

    }

    .divider(null)

    .sideBarPosition(SideBarPosition.End)

    .showSideBar(this.showSideBar)

    .showControlButton(false)

    .sideBarWidth(150)

    .minSideBarWidth(50)

    .maxSideBarWidth(300)

    .minContentWidth(0)

    .onChange((value: boolean) => {

      console.info('status:' + value)

    })

  }

}

更多关于HarmonyOS 鸿蒙Next SideBarContainer使用的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


针对HarmonyOS 鸿蒙Next SideBarContainer的使用问题,以下是一些专业解答:

SideBarContainer是HarmonyOS鸿蒙Next中提供侧边栏显示和隐藏功能的容器组件。通过子组件可以定义侧边栏和内容区,而侧边栏的显示与隐藏通常通过内部状态或用户交互(如点击控制按钮)来管理,但也可通过编程方式控制。

要实现外部控制侧边栏的打开和关闭,可以使用SideBarContainer的showSideBar属性。该属性接受一个布尔值,用于设置是否显示侧边栏。通过修改这个属性的值,你可以在代码的其他部分控制侧边栏的显示状态。

需要注意的是,如果在showSideBar属性后添加动画属性,可能会触发与预期相反的结果。例如,showSideBar为false时侧边栏出现,为true时侧边栏隐藏。若遇到此类问题,可以尝试不使用动画,或者使用animateTo函数来显示动画并调整showSideBar的值。

此外,SideBarContainer还支持多种属性设置,如侧边栏位置、宽度、最大宽度、最小宽度等,以满足不同的开发需求。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部