高さの異なるアイテムを含むTimeLineビューでcdk-virtual-scroll-viewport
を使用したいと思います。
したがって、itemSize="x"
の設定は、ドキュメントによればリスト内のアイテムのサイズ(ピクセル単位)であり、実用的ではありません。
autosize
はまだ使用できません。
cdk-virtual-scroll-viewport
vith可変アイテムサイズで仮想/エンドレススクロールを使用することはまったく可能ですか?
更新
私は代替の仮想/無限スクロールソリューションを探していましたが、信じられないほど、動的な行の高さで動作するnoソリューションがあるようです https: //github.com/rintoj/ngx-virtual-scroller 推奨されません。
2019年7月2日更新
その間まだ解決策がないので、これを回避する「十分に良い」方法は、固定数のアイテムをロードし、次の例のように、リストの下部にさらにアイテムをロードするボタンを追加することだと思います。 https://stackblitz.com/edit/ang-mat-load-more
itemSize = "x"は高さの設定に役立ちません...任意の高さを自分で割り当てるにはCSSを使用する必要があります。
あなたの質問に来ると、可変アイテムサイズは仮想スクロールの問題ではないはずです...配列を変更して この例では を変更して、可能性と結果を非常にすばやく確認できます。
この機能が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();
}
}