{"action":"created","issue":{"url":"https://api.github.com/repos/bvaughn/react-virtualized/issues/149","repository_url":"https://api.github.com/repos/bvaughn/react-virtualized","labels_url":"https://api.github.com/repos/bvaughn/react-virtualized/issues/149/labels{/name}","comments_url":"https://api.github.com/repos/bvaughn/react-virtualized/issues/149/comments","events_url":"https://api.github.com/repos/bvaughn/react-virtualized/issues/149/events","html_url":"https://github.com/bvaughn/react-virtualized/issues/149","id":139624311,"number":149,"title":"Spike for supporting arbitrary / dynamic heights","user":{"login":"bvaughn","id":29597,"avatar_url":"https://avatars.githubusercontent.com/u/29597?v=3","gravatar_id":"","url":"https://api.github.com/users/bvaughn","html_url":"https://github.com/bvaughn","followers_url":"https://api.github.com/users/bvaughn/followers","following_url":"https://api.github.com/users/bvaughn/following{/other_user}","gists_url":"https://api.github.com/users/bvaughn/gists{/gist_id}","starred_url":"https://api.github.com/users/bvaughn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bvaughn/subscriptions","organizations_url":"https://api.github.com/users/bvaughn/orgs","repos_url":"https://api.github.com/users/bvaughn/repos","events_url":"https://api.github.com/users/bvaughn/events{/privacy}","received_events_url":"https://api.github.com/users/bvaughn/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/bvaughn/react-virtualized/labels/discussion","name":"discussion","color":"fbca04"},{"url":"https://api.github.com/repos/bvaughn/react-virtualized/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":21,"created_at":"2016-03-09T16:20:54Z","updated_at":"2016-10-04T14:30:23Z","closed_at":"2016-05-22T21:23:18Z","body":"**Note**: This issue is a place for me to keep notes about an idea I have that I hope to eventually have enough time to focus on implementing.\r\n\r\nAll react-virtualized components currently require their cells to have explicit widths and heights. These dimensions can change from cell to cell but they must be known ahead of time in order for the windowing algorithms to determine which cells, and how many, to display. I think it might be possible to _not_ require this information ahead of time and instead just use a fixed width and height (representative of an \"average\" cell) to do the initial, rough layout. Then as a cell is brought into view, its rough dimensions could be replaced with real dimensions and the overall grid-size could be adjusted slightly as necessary.\r\n\r\nBecause react-virtualized allows programmatically jumping directly to an item- it's possible that _real_ cell measurements might be sparse within the overall tree but I think this approach may still work. This would enable cells with dimensions that are determined at runtime based on things like the amount of space required to display a string of text. It has a potential downside that the scrollbar may grow/shrink unexpected as a user scrolls if the _real_ cell sizes are vastly different than the \"average\" sizes used for initial layout. It also has potential performance implications."},"comment":{"url":"https://api.github.com/repos/bvaughn/react-virtualized/issues/comments/251405018","html_url":"https://github.com/bvaughn/react-virtualized/issues/149#issuecomment-251405018","issue_url":"https://api.github.com/repos/bvaughn/react-virtualized/issues/149","id":251405018,"user":{"login":"bvaughn","id":29597,"avatar_url":"https://avatars.githubusercontent.com/u/29597?v=3","gravatar_id":"","url":"https://api.github.com/users/bvaughn","html_url":"https://github.com/bvaughn","followers_url":"https://api.github.com/users/bvaughn/followers","following_url":"https://api.github.com/users/bvaughn/following{/other_user}","gists_url":"https://api.github.com/users/bvaughn/gists{/gist_id}","starred_url":"https://api.github.com/users/bvaughn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bvaughn/subscriptions","organizations_url":"https://api.github.com/users/bvaughn/orgs","repos_url":"https://api.github.com/users/bvaughn/repos","events_url":"https://api.github.com/users/bvaughn/events{/privacy}","received_events_url":"https://api.github.com/users/bvaughn/received_events","type":"User","site_admin":false},"created_at":"2016-10-04T14:30:23Z","updated_at":"2016-10-04T14:30:23Z","body":"Thanks 😄\r\n\r\nHm. I have not yet needed to use `CellMeasurer` in a production app. I created it for others but I haven't had a use-case for it myself so I'm a bit of a disadvantage offering advice about edge-cases usage. I think it might be possible to combine the 2 but you would likely need to wrap `CellMeasurer`'s `getHeight` function with your own function that set some boundaries.\r\n\r\nI have heard a couple of other people say they use react-virtualized with [react-measure](https://github.com/souporserious/react-measure) instead of `CellMeasurer`. I haven't tried this myself, either, but maybe it would be worth looking into."}}
{"actor":{"display_login":"bvaughn"}}