快速实现鸿蒙侧边栏显示与隐藏

文章目录

  • 前言
  • 侧边栏组件使用
  • 快速搞定侧边栏
  • 总结

一、前言

有好多文章要分享,但是来不及,就把最近觉得比较重要的组件分享下。最近因为在完善玩android的一个app,我的这个app叫玩鸿蒙,过段时间就开源了,敬请期待。

今天就分享,我在WanHarmony中用到的这个组件。先不多说,看下效果,老读者都知道我在维护一个组件使用的项目,所以我今天的这个组件使用,也会放到那个项目中,能快速的上手。

话不多说,看效果。

展开效果:

收缩效果:

上边的效果是在WanHarmony项目中已经实现的效果,如果你也想实现,那么你要把握这个关键组件。只要会使用这个组件,就能写出上面的效果。至于上面的效果,等我把WanHarmony开源就可以查看。

二、侧边栏使用

组件是SideBarContainer
cpp 复制代码
   Column(){
      SideBarContainer(SideBarContainerType.Embed) { //侧边栏和内容并列显示,Overlay是侧边栏浮在内容上面
        //侧边栏的布局 (也就是左半边布局)
        Column(){
          ForEach(this.arr, (item, index)=>{
            Column({space:5}){
              Image(this.current === index ? this.selectedIcon : this.normalIcon)
                .width(64)
                .height(64)

              Text('index0' + item)
                .fontSize(25)
                .fontColor(this.current === index ?  '#0A59F7' : '#999')
            }
            .onClick(()=>{
              this.current = index
            })
          }, item => item)
        }.width('100%')
        .margin({
          top: 90
        })
        .backgroundColor(Color.Red)
        .justifyContent(FlexAlign.SpaceEvenly)

        //右边 内容的布局  (右边半边的布局)
        List(){
          ForEach(this.arr,(item, index)=>{
            ListItem(){
              Text(item + '文本')
                .height(50)
            }
          }, (item)=>item)
        }
        .margin({
          top: 90
        })
        .height('100%')

      }.controlButton({//控制侧边栏显示隐藏的按钮
        icons:{
          hidden: $r('app.media.ic_broadside_close'),
          shown:$r('app.media.ic_broadside_default'),
          switching: $r('app.media.ic_broadside_close')
        },
        width:32,
        height:32
      })
      .sideBarWidth(150)
      .minSideBarWidth(50)
      .maxSideBarWidth('100%')
      .onChange((value)=>{ //侧边栏是否显示的值
        console.log('当前的值:' + value)
      })
      .backgroundColor(Color.Green)

    }
    .margin({
      top: -40
    })

三、快速搞定侧边栏

从上面注释基本就能知道这个组件的使用了,自己再撸一把就掌握了。

这里罗列下SideBarContainer的要点:

1、里面放两个布局,一个作为左半部分用,一个作为右半边部分用。

2、controlButton 这个是侧边栏切换的按钮,可以设置按钮图片和大小

3、sideBarWidth 这个是设定侧边栏(左边部分)的宽度,也就是左半边的大小。

4、如果想让左边部分滚动,那么里面就放List组件就可以了。

最后呢,将我整理的这个组件放到这个项目中,后面有新增,也会一并上传。开发中,某些api忘记了,可以重新拿出来看看。

最后献上我的个人v,专属终身顾问,解答关于鸿蒙相关的东西,包括项目中的问题,还有最新的技术点,快速开发,抢在前头。 hmssz1

技术迭代很快,不要在一个问题上拔不出来,找到专业的人,快速的解决,作为程序员时间是最宝贵的,不要自己蒙头苦干,等你搞懂了,这个技术已经过时了。

以上代码地址:github.com/shenshizhon...

找到这个类 SlideBarContainerTestPage.ets

总结

1、SideBarContainer 的使用

2、给定好左边部分 和右边部分的布局

3、设置好左半边大小 和右半天大小

如果对你有一点点帮助,那是值得高兴的事情。:)

我的csdn:blog.csdn.net/shenshizhon...

我的简书:www.jianshu.com/u/345daf021...

相关推荐
OH五星上将4 小时前
OpenHarmony(鸿蒙南向开发)——标准系统方案之瑞芯微RK3568移植案例(下)
linux·驱动开发·嵌入式硬件·harmonyos·openharmony·鸿蒙开发·系统移植
余生爱静4 小时前
纯血鸿蒙NEXT常用的几个官方网站
华为·harmonyos
让开,我要吃人了5 小时前
HarmonyOS鸿蒙开发实战(5.0)网格元素拖动交换案例实践
前端·华为·程序员·移动开发·harmonyos·鸿蒙·鸿蒙开发
PlumCarefree7 小时前
鸿蒙手势交互(三:组合手势)
华为·交互·harmonyos
煸橙干儿~~8 小时前
应用性能优化实践(三)减少丢帧卡顿
华为·harmonyos
OH五星上将11 小时前
OpenHarmony(鸿蒙南向开发)——小型系统内核(LiteOS-A)【扩展组件】上
linux·嵌入式硬件·harmonyos·openharmony·鸿蒙开发·liteos-a·鸿蒙内核
OH五星上将15 小时前
OpenHarmony(鸿蒙南向开发)——小型系统内核(LiteOS-A)【内核通信机制】下
harmonyos·openharmony·鸿蒙开发·liteos-a·鸿蒙内核·子系统·内核通信
让开,我要吃人了15 小时前
HarmonyOS开发实战(5.0)实现二楼上划进入首页效果详解
前端·华为·程序员·移动开发·harmonyos·鸿蒙·鸿蒙系统
小强在此15 小时前
基于开源鸿蒙(OpenHarmony)的【智能家居综合应用】系统
华为·开源·智能家居·团队开发·harmonyos
OH五星上将15 小时前
OpenHarmony(鸿蒙南向开发)——小型系统内核(LiteOS-A)【内核通信机制】上
linux·嵌入式硬件·harmonyos·openharmony·鸿蒙开发·liteos-a·鸿蒙内核