• 鸿蒙开发加强2


    快速创建一个符合长度的数组  空数组
    Array.from({length: 200})   // 200的长度的空数组
    场景:只确定长度,不确定内容的情况

    @State 状态装饰器 =》增强功能
    数据变化了 可以引起页面的重新渲染
    没有@State修饰的变量,不会引起UI的刷新渲染
    加不加@state看数据变化是不是需要重新展示
    数据变化后需要重新展示页面的,必须加@State来修饰


    创建一个控制器,调用一个函数
    将控制器和被控制者绑定
    控制器控制行为


    control Scroller = new Scroller()
    Grid(this.control){}
     this.control.scrollPage({ next: true })  // 下一页
      this.control.scrollPage({ next: false }) // 上一页
      
      
    滚动条设置
    scrollBar(BarState.枚举)
    scrollBarWidth()
    scrollBarColor()


    和Grid共用一个scroller
    滚动条定制
    1. 要有一个控制器 两个都设置   => 和Grid产生联动
    2. ScrollBar 滚动条组件 自己滚自己


    默认是竖着滚动
    ScrollBar({scroller:this.control,direction:ScrollBarDirection.Horizontal}){
    // 里面的结构

    }


    $r('app.media.图片名') => $r() 是图片资源地址
    'app.media.图片名'  => 是string 图片名

    ResourceStr 是Resource和string的联合类型

    --------------------------------------------------
    Scroll,Tabs

    Scroll容器组件
    子组件的布局尺寸超过scroll的尺寸

    Scroll只支持一个组件
    设置滚动方向:
    竖向滚动   scrollable(ScrollDirection.Vertical)  默认
    横向滚动   scrollable(ScrollDirection.Horizontal)

    scrollBar            设置滚动条状态
    scrollBarColor       设置滚动条颜色
    scrollBarWidth         设置滚动条宽
    edgeEffect             设置滚动条边缘效果


    Scroll的控制器
    scroller: Scroller = new Scroller()

    this.scroller.scrollEdge(Edge.Top) // 返回顶部

    获取滚动条的距离
    this.scroller.currentOffset().xOffset
    this.scroller.currentOffset().yOffset

    Scroll事件
    滚动时添加逻辑   滚动时 一直触发
    注册滚动事件 =》添加一个逻辑 指定他的执行时机
    .onScroll((x:number,y:number)=>{  })


    容器组件Tabs
    Tabs(){ 
    TabContent(){}.tabBar('')
     }

    TabContent 里只能有一个子组件

    Tabs 支持两种切换 滑动,点击

    通用属性
    导航位置
    barPosition   Tabs({barPosition:BarPosition.End})
    垂直导航 =》车机和平板用的多
    .vertical(true)
    禁用滑动切换(默认可以滑动切换)
    .scrollbale(false)
    点击切换(切换时的动画效果)
    .animationDuration(数字)
    .animationDuration(0)  ==》切换时瞬间切换


    滚动导航栏
    tabs导航栏一旦多了 默认挤压效果
    .barMode(BarMode.Scrollable)


    自定义构建函数(自定义结构函数)
    Tabs() { TabContent() {}.tabBar(this.fun()) }
    @Builder
    fun() { }

    Tabs组件事件
    onChange(event:(index:number)=>void)   在改变时执行  页面切换完成时执行
    onTabBarClick(event:(index:number)=>void) 在点击导航栏时执行 只要点击时立即执行

     // 思维导图


  • 相关阅读:
    AlphaGo & Model-Based RL
    如何使用 Eolink 实现 API 文档自动生成
    Linux02-常规使用和命令
    elastic-job源码分析
    【Java中23种面试常考的设计模式之享元模式(Flyweight)---结构型模式】
    一种基于闭包函数实现自动化框架断言组件的设计实践
    HTTP状态码的含义;并且实现:如何实现多组输入
    Win11共享文件打不开怎么办?Win11共享文件打不开的解决方法
    什么是浏览器指纹
    迪拜推出国家元宇宙战略
  • 原文地址:https://blog.csdn.net/shr007_/article/details/139380607