我想在时间轴视图中使用javax.portlet.PortletException: Component with id::frmMain2:sub1:rep1:0:panel not found
处理不同高度的项目。
因此根据文档说明,将 Process[] processlist = Process.GetProcesses();
foreach (Process theprocess in processlist)
{
}
设置为列表中项目的大小(以像素为单位) 是不切实际的。
cdk-virtual-scroll-viewport
尚不可用。
是否可以在itemSize="x"
项大小可变的情况下使用虚拟/无限滚动?
更新
我一直在寻找替代的虚拟/无限滚动解决方案,而且我几乎不敢相信,似乎没有 no 解决方案可用于动态行高,即使不使用https://github.com/rintoj/ngx-virtual-scroller,也不建议这样做
答案 0 :(得分:5)
自动调整大小 对我有用。
尝试安装:
"@angular/cdk": "6.2.0",
"@angular/cdk-experimental": "6.2.0"
然后将 ScrollingModule 导入您的模块:
import {ScrollingModule} from "@angular/cdk-experimental";
imports: [ScrollingModule]
然后您可以使用 autosize 属性,如下所示:
<cdk-virtual-scroll-viewport autosize style="height: 100%">
答案 1 :(得分:1)
itemSize =“ x”并不能帮助您设置高度...您必须使用CSS自己指定一个高度。
关于您的问题,可变项目大小对于虚拟滚动来说应该不是问题...您可以更改数组in this example以非常迅速地查看可能性和结果。
答案 2 :(得分:1)
可以使用[ngStyle]动态设置cdkvirtualscrollviewport高度
<cdk-virtual-scroll-viewport
itemSize="parent?.children.length"
[ngStyle]="{'height.px': parent?.children.length<10? parent?.children.length*42 :250 }"
>
答案 3 :(得分:0)
在CDK中提供此功能之前,我先通过侦听本机元素的onscroll事件解决该问题,然后在滚动到底部的偏移量为0时做出响应
@ViewChild(CdkVirtualScrollViewport, { static: false })
public virtualScrollViewport?: CdkVirtualScrollViewport;
...
ngAfterViewInit() {
this.virtualScrollViewport.elementRef.nativeElement.onscroll = (e) => { this.onScroll(e) };
}
onScroll(e) {
var scrollOffset = this.virtualScrollViewport.measureScrollOffset("bottom");
if (scrollOffset == 0) {
this.fetchMoreData();
}
}
答案 4 :(得分:0)
此CSS对我有用。不需要固定高度:
<cdk-virtual-scroll-viewport class="viewport">
.......
</cdk-virtual-scroll-viewport>
.viewport {
display: contents;
}