如何在 cdk-virtual-scroll-viewport 填充其余高度时始终保持工具栏位于顶部?

How to keep toolbar always on top while cdk-virtual-scroll-viewport filling the rest of the height?

我有一个包含 mat-toolbarcdk-virtual-scroll-viewport 的页面。我想让 mat-toolbar 始终位于屏幕顶部,而 cdk-virtual-scroll-viewport 填充屏幕的其余部分。

我尝试将 cdk-virtual-scroll-viewport 的高度设置为 100vh,但是,当我到达列表末尾时,工具栏消失了。

这是我准备的示例代码:https://stackblitz.com/edit/angular-lbxmce

如您所见,一旦我们滚动到底部的末尾,我们需要滚动回第一个项目才能使工具栏再次出现。如何固定工具栏的位置,同时让列表充满屏幕的其余部分?

谢谢。

最佳做法是为您的页面实施布局并将 mat-toolbar 添加到布局中。

这是一个例子:

...

const routes: Routes = [
 {
   path: 'test',
   component: TestLayoutComponent,
   children: [
     { path: '', component: TestComponent },
   ]
 }
];

@NgModule({
 imports: [RouterModule.forChild(routes)],
 exports: [RouterModule]
})
export class TestRoutingModule { }

Read more

您需要知道工具栏的height,然后您可以计算视口的高度:

.example-viewport {
  height: calc(100vh - 64px);
  margin: 4px;
}