angular / angular/components

Expansion panel expanded state issue with Virtual Scroll

Open
#13,697 15 comments 16 reactions 0 assignees View on GitHub
area: cdk/scrolling area: material/expansion P3
Dominant language
TypeScript
Stars
25k
Forks
6.8k
Avg merge
1d 8h
Merged PRs (30d)
91

Description

#### Bug, feature request, or proposal:

`cdkVirtualScroll` does not work properly with `matAccordion` and `matExpansionPanel`.

The accordion does not respect the expansion state of individual expansion panels as you scroll.

#### What is the expected behavior?
The expansion state is maintained as you scroll

#### What is the current behavior?
If you expand the xth item in the accordion then as you scroll, the xth in the view will always be expanded. ie if you expand the 3rd item then as you scroll down to say the 1000th item then the 1003rd item will be expanded.

#### What are the steps to reproduce?
[Stackblitz example](https://stackblitz.com/edit/virtual-scroll-expansion-panels)

#### What is the use-case or motivation for changing an existing behavior?
Able to use expansion panels inside virtual scroll

#### Which versions of Angular, Material, OS, TypeScript, browsers are affected?
Angular 7.0
Material 7.0
MacOS 10.14
TypeScript 3.x
Browser Chrome 70.0

#### Is there anything else we should know?
No

Contributor guide

Open the contributing guide

Research direction

Start with the linked StackBlitz reproduction and inspect how cdkVirtualScroll is combined with matAccordion and matExpansionPanel. Confirm that expansion state follows the original item rather than its recycled viewport position, and use that behavior as the completion criterion.

Written by the indexing model from the issue text.

Assessment

Tech stack
angular, typescript
Domain
frontend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.