help(COMPONENT): Getting Sticky to work right for Angular Material Data Table.
- Dominant language
- TypeScript
- Stars
- 25k
- Forks
- 6.8k
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 91
Description
#### What are you trying to do?
Get sticky to work right. Here's a Stackblitz that has an ID column that is sticky, and two other columns. In this case sticky works correctly because there are only two other columns:
https://stackblitz.com/edit/angular-material-minimal-sticky
However if we add 100 columns, as is done in this demo:
https://stackblitz.com/edit/angular-material-minimal-with-paging-and-sorting-and-sticky-100
The ID column disappears when scrolling horizontally.
The solution suggested on SO is to use inline-flex:
https://stackoverflow.com/questions/62562388/getting-sticky-to-always-stick-the-column-in-material-data-table
However that creates another problem, which is that the header cells no longer expand to fit the table with.
That can cause table rows to wrap inside the main table container as described here:
https://stackoverflow.com/questions/62584549/material-data-table-wraps-rows-when-table-width-allows-it
Any thoughts on how to get sticky to work right, without causing the wrapping issues?
Contributor guide
Research direction
Start by reproducing the behavior in the two linked StackBlitz demos and compare it with the inline-flex approach described in the linked Stack Overflow answers. Investigate the Angular Material data table sticky-column behavior, then verify that the ID column remains visible with 100 columns while header sizing and row wrapping still work correctly.
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
- 35/100