【发布时间】:2024-01-19 16:54:01
【问题描述】:
我尝试实现一个包含 Angular 材质扩展面板列表的 Sidenav。当我使用 ngFor 指令时,布局看起来很好,就像我想要的那样。正如您在图像中看到的,它将视图扩展为扩展面板内容宽度的 100%。
Layout using ngFor-directive。
Stackblitz 使用 ng-For-directive 的外观:
https://stackblitz.com/edit/angular-ivy-fwav88?file=src/app/app.component.ts
由于列表中可能会有数千个项目,我想使用 CDK 虚拟滚动来提高性能。
但是使用它,我无法将列表的宽度设置为 100%。取而代之的是一个水平滚动条。
How it looks with virtual scroll.
带有虚拟滚动的代码堆栈闪电战:https://stackblitz.com/edit/angular-ivy-xr5bok?file=src/app/sidenav/sidenav.component.html
我尝试使用 flexbox 和我知道的所有其他 CSS 技巧,但没有任何成功。
非常感谢您的帮助。
谢谢!
【问题讨论】:
-
虚拟滚动意味着并非所有项目都始终呈现,这意味着“自动宽度”会随着您滚动列表而不断变化。您需要预先知道确切的宽度,或者您必须接受这样一个事实:sidenav 在您滚动时会不断改变大小。
-
即使这样也可以,但是我怎样才能让它适应内容的宽度呢?从这里我可以继续寻找“完美”的解决方案。谢谢!
标签: css angular angular-material angular-cdk angular-cdk-virtual-scroll