as

Settings
Sign out
Notifications
Alexa
亚马逊应用商店
Ring
AWS
文档
Support
Contact Us
My Cases
新手入门
设计和开发
应用发布
参考
支持
跳转到主要内容
Carousel用于在Vega应用的用户界面屏幕中实现单行内容元数据图块。Carousel通常出现在主屏幕网格布局、与此类似用户界面或Related Content(相关内容)推荐行中等多种场景中。

Vega Carousel更新

  • 修复了视图循环滚动方面的问题。
  • 移除了像getItemLayout和layoutId这样的布局属性,因为Carousel现在会自动确定布局。
  • 扩展了属性列表,允许对Carousel进行更多自定义设置。
  • 添加了一个新的回调属性,每当Carousel上的当前选定项目发生变化时都会通知您。
  • 这个库目前是随应用打包,而不是随系统打包(有关更多详细信息,请参阅下一节)。

随应用打包

此版本的Carousel是随应用打包的,需要在发布之前执行npm更新操作,以确保您拥有最新版本。随应用打包使您可以更灵活地决定何时在应用中推出新的Carousel更新。

属性组合

itemStyle和animationDuration属性现在可以与其他属性组合在一起。 示例:

示例

水平Carousel

本示例展示了一种基础的水平Carousel实现方式,包含了焦点状态管理和图像渲染功能。该组件使用dataAdapter模式来管理项目检索,并提供按下和选定项目时的缩放动画效果。

垂直Carousel

本示例演示了如何配置一个垂直滚动的Carousel组件,并为其添加自定义的选中项边框。这一实现采用了红色边框搭配黄色描边效果,并运用锚定选择策略,确保用户在浏览时,选定项目保持锁定状态。

异构Carousel

本示例演示了Carousel如何根据索引在两种不同布局之间交替切换,从而在同一行中渲染不同项目类型的项目。在索引中位于偶数位的项目使用200像素的宽度布局,位于奇数位的项目使用500像素的宽度布局,这展示了Carousel灵活的内容呈现方式。

样式

这个样式表示例为一个同时支持水平和垂直滚动方向的Carousel组件定义了样式常量。其中包括主Carousel的容器样式(全屏显示,黑色背景)、两种规格变体的项目容器(宽200像素和500像素),以及根据方向调整的固定尺寸布局(水平方向高度为420像素,垂直方向宽度为250像素)。

自定义类型

以下示例展示了一系列自定义类型,可用于为可滚动包装器组件定义Carousel项目和属性。
  • ItemType: 一种自定义数据类型,用于表示单个Carousel项目的结构。 属性:url (string) 属性是显示在Carousel项目中的图像的URL。url (string) 属性定义传递给Carousel、和ScrollableProps的项目。
  • ScrollableProps: 可滚动Carousel包装器组件的属性接口。 属性:data (ItemType[]) 属性是一个项目对象数组,存储要在Carousel中呈现的项目。data (ItemType[]) 属性为水平、垂直和异构可滚动包装器组件中的组件属性提供类型安全保障。这样可以确保传递给这些组件的数据符合预先设定结构要求。

功能

数据适配器

Vega Carousel允许您提供包含各种回调函数的dataAdapter,从而实现更灵活的自定义功能。有关更多信息,请参阅Carousel项目数据适配器回调函数部分。 假设您有一个data数组,存储有Carousel项目信息,则可以实现一组dataAdapter函数,如以下示例所示。

选择策略

当您使用方向键浏览列表时,SelectionStrategy属性控制列表中项目滚动和重新定位的方式。

Anchored

anchored样式会将选定项目保持锁定在初始项目的位置。滚动时,列表中的项目会重新定位,使选定项目保持锚定在初始位置。 屏幕截图显示了数个排成一行的方块,其中一个方块带有黑色边框。图片上标有滚动方向及水平方向的箭头。

Natural

natural样式会将选定项目沿着Carousel的滚动方向移动,直到到达列表的开头或结尾。 屏幕截图显示了类似的滚动方向图示,但有三行,每行有一个不同的方块,带有黑色边框。图片显示了每行中滚动方向的递进,示意向右滚动。

Pinned

在滚动一大组项目时,pinned样式会将选定项目固定在指定位置。当用户浏览到列表的开头或结尾时,滚动行为会平滑过渡到natural的移动样式。 借助可选属性pinnedSelectedItemOffset,当SelectionStrategy为pinned时,您可以定义选定项目的固定位置。 pinnedSelectedItemOffset属性决定选定项目在Carousel视口中固定 (‘pinned’) 的位置。您可以通过两种方式指定此位置:
  • 以视口大小的百分比 (0-100%) 表示:
    • 对于垂直Carousel:高度百分比
    • 对于水平Carousel:宽度百分比
  • 使用预设值:
    • start(等于0%)
    • center(等于50%)
    • end(等于100%)
在水平模式下,从左边缘开始测量(书写顺序为从右到左的语言除外)。

可变滚动速度

Carousel组件引入了一个控制滚动速度的新功能,此功能是通过一组AnimationDurationProps来实现的。与Flatlist或Flashlist等现有组件不同,此功能增强了灵活性,让您可以微调滚动体验。 itemPressedDuration属性控制用户按下某个Carousel项目时,相应动画的持续时间。itemScrollDuration属性控制滚动到每个Carousel项目的动画持续时间。containerSelectionChangeDuration属性控制在更改选定的Carousel容器时,相应动画的持续时间。

选择边框

该Carousel组件支持在选定的用户界面项目周围显示边框。您可以设置边框样式,并选择如何绘制选定项目的内容和边框。您可以通过定义selectionBorder属性来启用这个边框。选择边框的默认属性如下所示。
Vega Carousel支持borderStrategy属性。该属性支持两种策略类型:
  • outset - 边框在项目的原始边界外侧绘制,因此项目内容尺寸保持不变,但项目整体尺寸变大。
  • inset - 边框在项目边界内侧绘制,覆盖项目内容,因此,虽然项目内容尺寸保持不变,但有一部分内容会被边框遮挡。项目整体尺寸保持不变。

属性

选择边框属性

动画时长属性

Carousel项目样式属性

Carousel项目数据适配器回调函数

Carousel方法

Carousel组件提供了对浏览体验进行编程控制的方法。通过将当前组件的实例传递给ref属性,可以访问以下方法。

故障排除

垂直滚动功能仅在高度已设定的情况下适用

对于垂直滚动(具体指自然滚动),您需要将containerStyle设置为固定的高度值。
最后修改于 2026年10月26日