搜索文件 /

虚拟滚动

过去,我们提供了一个 离子虚拟滚动 离子框架中的组件,以帮助列betway东盟体育app出虚拟化。当时没有角度,但最近角度已经通过了自己的解决方案 @ Angular / CDK 包裹。

设置

要设置CDK滚动函数,请先安装 @ Angular / CDK


              NPM.
             
              添加
             @ Angular / CDK

这提供了不同公用事业的集合,但我们将专注于 滚动模块 目前。

当我们想要使用CDK滚动函数时,我们需要在我们的组件中导入模块。例如,在标签启动项目中,我们可以添加我们的导入 Tabs1.module.ts. 文件。


             从'@离子/角度'betway东盟体育app导入{ionicmodule};从'@ Angular / Core'导入{ngmodule};从'@ Angular / Common'导入{commonmodule};从“@ Angular / Forms”导入{FormsModule};从'./tab1.page'导入{tab1page};从'../explore-container/explore-container.module'导入{explorecontainercomponentmodule};+从“@ Angular / CDK /滚动”导入{滚动模块};从'./tab1-routing.module'导入{tab1pageroutingmodule};@nymodule({imports:[ionbetway东盟体育appicmodule,commonmodule,formsmodule,explorecondainercomponentmodule,tab1pageroutingmodule,+ scrollingmodule],声明:[tab1page]})导出类tab1pagemodule {}
复制 复制

使用此添加,我们可以访问Tab1Page组件中的虚拟滚动函数。

用法

可以通过添加CDK虚拟滚动票据通过添加到组件中 CDK-Virtual-Scroll-ViewPort 到组件的模板。


                <
               离子内容
               >
             
                <
               CDK-Virtual-Scroll-ViewPort
               >
             
                
               CDK-Virtual-Scroll-ViewPort
               >
             
                
               离子内容
               >
复制 复制

CDK-Virtual-Scroll-ViewPort 成为可滚动内容的根源,并负责回收DOM节点,因为它们滚动了视图。

此时的DOM节点可以是应用所需的任何内容。不同之处在于,当我们想要迭代集合时, * cdkvirtualfor. 用而不是 * Ngfor.


                <
               离子内容
               >
             
                <
               CDK-Virtual-Scroll-ViewPort
               >
             
                <
               离子清单
               >
             
                <
               离子项目
              
               * cdkvirtualfor.
                =
                
               让项目项目
                
               >
             
                <
               离子头像
              
               投币口
                =
                
               开始
                
               >
             
                <
               im
              
               SRC.
                =
                
               https://loremflickr.com/40/40
                
              
               />
             
                
               离子头像
               >
             
                <
               离子标签
               >
             {{物品 }}
                
               离子标签
               >
             
                
               离子项目
               >
             
                
               离子清单
               >
             
                
               CDK-Virtual-Scroll-ViewPort
               >
             
                
               离子内容
               >
复制 复制

这里, 项目 是一个数组,但它可以是一个数组, 可观察的 , 要么 数据源 数据源 是一个抽象类,可以提供所需的数据以及实用方法。有关更多详细信息,请查看 CDK虚拟滚动文档

该组件尚未完整 CDK-Virtual-Scroll-ViewPort 需要知道每个节点的大小以及最小/最大缓冲区大小。

目前,CDK虚拟滚动函数仅支持固定大小的元素,但计划为将来计划动态大小的元素。为了 tab1page. 组件,因为它只是呈现项目,它可以将硬编码为固定大小。

min / max缓冲区大小告诉滚动函数“呈现为满足此最小高度的许多节点,但不符合此问题。


                <
               CDK-Virtual-Scroll-ViewPort
              
               项目化
                =
                
               56.
                
              
               minbufferpx.
                =
                
               900
                
              
               maxbufferpx.
                =
                
               1350.
                
              
               >
                
               CDK-Virtual-Scroll-ViewPort
               >
复制 复制

对于这种情况来说, CDK-Virtual-Scroll-ViewPort 将在高度56px的高度呈现细胞,直到它达到900px的高度,但在1350px中不再升高。这些数字是任意的,因此请务必测试在真正用例中的工作值。

将所有内容放在一起,最终的HTML应该是如此:


                <
               离子内容
               >
             
                <
               CDK-Virtual-Scroll-ViewPort
              
               项目化
                =
                
               56.
                
              
               minbufferpx.
                =
                
               900
                
              
               maxbufferpx.
                =
                
               1350.
                
              
               >
             
                <
               离子清单
               >
             
                <
               离子项目
              
               * cdkvirtualfor.
                =
                
               让项目项目
                
               >
             
                <
               离子头像
              
               投币口
                =
                
               开始
                
               >
             
                <
               im
              
               SRC.
                =
                
               https://loremflickr.com/40/40
                
              
               />
             
                
               离子头像
               >
             
                <
               离子标签
               >
             {{物品 }}
                
               离子标签
               >
             
                
               离子项目
               >
             
                
               离子清单
               >
             
                
               CDK-Virtual-Scroll-ViewPort
               >
             
                
               离子内容
               >
复制 复制

最后一件件需要正确尺寸的CSS。在里面 tab1.page.scs. 文件,添加以下内容


              CDK-Virtual-Scroll-ViewPort
              {
             
              高度
              
             100%
              ;
             
              宽度
              
             100%
              ;
             
              }
复制 复制

由于视口构建以适合各种用例,因此未设置默认调整,并达到开发人员。

关于离子组分的备忘录betway东盟体育app

某些离子框架功能betway东盟体育app目前与虚拟滚动不兼容。可折叠大型标题等功能, 离子无限滚动 , 和 离子复习 依靠能够滚动 离子内容 本身,并且在使用虚拟滚动时,因此不起作用。

我们正在努力提高这些组件与虚拟滚动解决方案之间的兼容性。您可以在此处遵循进度并在此处提供反馈: https://github.com/betway东盟体育appionic-team/ionic-framework/issues/23437

进一步阅读

这仅涵盖CDK虚拟滚动仪能够的一小部分。有关更多详细信息,请参阅 Angular CDK虚拟滚动文档

以前的
导航/路由
下一个
幻灯片
Baidu