• openharmony容器组件之Swiper


    Swiper:滑动容器,提供切换子组件显示的能力

    Swiper(value:{controller?: SwiperController})
        controller:给组件绑定一个控制器,用来控制组件翻页
    属性:
    index:设置当前在容器中显示的子组件的索引值,默认0
    autoPlay:子组件是否自动播放,自动播放状态下,导航点不可操作,默认false
    interval:使用自动播放时播放的时间间隔,单位为毫秒,默认3000
    indicator:是否启用导航点指示器,默认true
    loop:是否开启循环,默认true
    duration:子组件切换的动画时长,单位为毫秒,默认400
    vertical:是否为纵向滑动,默认false
    itemSpace:设置子组件与子组件之间间隙,默认0
    cachedCount(API8):设置预加载子组件个数,默认1
    disableSwipe(API8):禁用组件滑动切换功能。
    curve(API8):设置Swiper的动画曲线,默认为淡入淡出曲线,常用曲线参考Curve枚举说明,也可以通过插值计算模块提供的接口创建自定义的Curves(插值曲线对象),默认Curve.Ease
    indicatorStyle(API8):设置indicator样式    
        {
        left?: Length,//设置导航点距离Swiper组件左边的距离
        top?: Length,//设置导航点距离Swiper组件顶部的距离
        right?: Length,//设置导航点距离Swiper组件右边的距离
        bottom?: Length,//设置导航点距离Swiper组件底部的距离
        size?: Length,//设置导航点的直径
        color?: Color,//设置导航点的颜色
        selectedColor?: Color//设置选中的导航点的颜色
        }    


    SwiperController:Swiper容器组件的控制器,可以将此对象绑定至Swiper组件,然后通过它控制翻页
    showNext():void    翻至下一页。
    showPrevious():void    翻至上一页。
    事件:
    onChange( index: number) => void    当前显示的组件索引变化时触发该事件

    案例效果:

    代码:

     

    1. class MyDataSource implements IDataSource {
    2. private list: number[] = []
    3. private listener: DataChangeListener
    4. constructor(list: number[]) {
    5. this.list = list
    6. }
    7. totalCount(): number{
    8. return this.list.length
    9. }
    10. getData(index: number) {
    11. return this.list[index]
    12. }
    13. registerDataChangeListener(listener: DataChangeListener) {
    14. this.listener = listener
    15. }
    16. unregisterDataChangeListener() {
    17. }
    18. }
    19. @Entry
    20. @Component
    21. struct SwiperPageT {
    22. private swiperController: SwiperController = new SwiperController()
    23. private data: MyDataSource = new MyDataSource([])
    24. aboutToAppear(): void{
    25. let list = []
    26. for (var i = 1;i <= 10; i++) {
    27. list.push(i.toString())
    28. }
    29. this.data = new MyDataSource(list)
    30. }
    31. build() {
    32. Column({ space: 5 }) {
    33. Swiper(this.swiperController) {
    34. LazyForEach(this.data, (item: string) => {
    35. Text(item).width('90%').height(160)
    36. .backgroundColor(0xAFEEEE)
    37. .textAlign(TextAlign.Center)
    38. }, item => item)
    39. }
    40. .cachedCount(2) //设置预加载个数
    41. .index(1) //设置当前显示的组件索引
    42. .autoPlay(true) //自动播放
    43. .interval(4000) //自动播放时间间隔
    44. .indicator(true) //默认开启指示点
    45. .loop(false) //循环播放
    46. .duration(1000) //切换动画时长
    47. .vertical(false) //横向切换
    48. .itemSpace(0) //组件之间的间隙
    49. .curve(Curve.Linear) //动画曲线
    50. .onChange((index: number) => {
    51. console.info(index.toString())
    52. })
    53. Flex({ justifyContent: FlexAlign.SpaceAround }) {
    54. Button('next').onClick(() => {
    55. this.swiperController.showNext()
    56. })
    57. Button('preview').onClick(() => {
    58. this.swiperController.showPrevious()
    59. })
    60. }
    61. }
    62. .width('100%')
    63. .height('100%')
    64. }
    65. }

  • 相关阅读:
    JVM学习——6——JVM常用命令
    VSCode Python代码逐行运行
    LiveGBS流媒体平台GB/T28181功能-视频直播流快照的安全控制配置播放回调鉴权接口控制播放权限
    C++11 --------- 知识点补充
    javamd5加密解密
    java高并发系列-第1天:必须知道的几个概念
    计算机竞赛 深度学习机器视觉车道线识别与检测 -自动驾驶
    SpringMVC【框架】
    指针进阶2
    centos-apache-简易搭建静态网页服务器-总结
  • 原文地址:https://blog.csdn.net/lplj717/article/details/126280579