• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Class (SwiperDynamicSyncScene)
2<!--Kit: ArkUI-->
3<!--Subsystem: ArkUI-->
4<!--Owner: @Hu_ZeQi-->
5<!--Designer: @jiangdayuan-->
6<!--Tester: @lxl007-->
7<!--Adviser: @HelloCrease-->
8
9提供Swiper组件相关帧率的配置。
10
11> **说明:**
12>
13> - 本模块首批接口从API version 10开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
14>
15> - 本Class首批接口从API version 12开始支持。
16>
17> - SwiperDynamicSyncScene继承自[DynamicSyncScene](arkts-apis-uicontext-dynamicsyncscene.md),对应Swiper的动态帧率场景。
18
19## 属性
20
21**原子化服务API:** 从API version 12开始,该接口支持在原子化服务中使用。
22
23**系统能力:**  SystemCapability.ArkUI.ArkUI.Full
24
25| 名称       | 类型                                                      | 只读 | 可选 | 说明                                |
26| --------- | --------------------------------------------------------- | ---- | ---- | ---------------------------------- |
27| type<sup>12+</sup>      | [SwiperDynamicSyncSceneType](./arkts-apis-uicontext-e.md#swiperdynamicsyncscenetype12) | 是   | 否   | Swiper的动态帧率场景。             |
28
29**示例:**
30
31```ts
32import { SwiperDynamicSyncSceneType, SwiperDynamicSyncScene } from '@kit.ArkUI';
33
34@Entry
35@Component
36struct Frame {
37  @State ANIMATION: ExpectedFrameRateRange = { min: 0, max: 120, expected: 90 };
38  @State GESTURE: ExpectedFrameRateRange = { min: 0, max: 120, expected: 30};
39  private scenes: SwiperDynamicSyncScene[] = [];
40
41  build() {
42    Column() {
43      Text("动画"+ JSON.stringify(this.ANIMATION))
44      Text("跟手"+ JSON.stringify(this.GESTURE))
45      Row(){
46        Swiper() {
47          Text("one")
48          Text("two")
49          Text("three")
50        }
51        .width('100%')
52        .height('300vp')
53        .id("dynamicSwiper")
54        .backgroundColor(Color.Blue)
55        .autoPlay(true)
56        .onAppear(()=>{
57          let scenes = this.getUIContext().requireDynamicSyncScene("dynamicSwiper") as SwiperDynamicSyncScene[];
58          if (scenes) {
59            this.scenes = scenes;
60          }
61        })
62      }
63
64      Button("set frame")
65        .onClick(() => {
66          this.scenes.forEach((scenes: SwiperDynamicSyncScene) => {
67
68            if (scenes.type == SwiperDynamicSyncSceneType.ANIMATION) {
69              scenes.setFrameRateRange(this.ANIMATION);
70            }
71
72            if (scenes.type == SwiperDynamicSyncSceneType.GESTURE) {
73              scenes.setFrameRateRange(this.GESTURE);
74            }
75          });
76        })
77    }
78  }
79}
80```