New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RFC] Add option to prevent renderRow from being called if interaction is in progress #2990

Closed
brentvatne opened this Issue Sep 24, 2015 · 9 comments

Comments

Projects
None yet
8 participants
@brentvatne
Collaborator

brentvatne commented Sep 24, 2015

Diff: brentvatne@83c1b4e

This allows me to render some initial X rows in a new scene, then trigger a fading animation to make it visible, during which no new rows will be rendered. Maybe useful in other cases too, eg: rows are being rendered while you start dragging something.

@ide

This comment has been minimized.

Show comment
Hide comment
@ide

ide Sep 24, 2015

Collaborator

One interesting thing about this approach is that it crudely approximates incremental rendering. Combined with requestIdleCallback this could be an interesting avenue to explore before React 2.
cc @sahrens

Collaborator

ide commented Sep 24, 2015

One interesting thing about this approach is that it crudely approximates incremental rendering. Combined with requestIdleCallback this could be an interesting avenue to explore before React 2.
cc @sahrens

@brentvatne

This comment has been minimized.

Show comment
Hide comment
@brentvatne

brentvatne Sep 24, 2015

Collaborator

Forgot to mention in the initial post that @ide came up with this idea and I just tried it out :)

Collaborator

brentvatne commented Sep 24, 2015

Forgot to mention in the initial post that @ide came up with this idea and I just tried it out :)

@brentvatne

This comment has been minimized.

Show comment
Hide comment
@brentvatne

brentvatne Sep 27, 2015

Collaborator

cc @vjeux

Collaborator

brentvatne commented Sep 27, 2015

cc @vjeux

@vjeux

This comment has been minimized.

Show comment
Hide comment
@vjeux

vjeux Sep 28, 2015

Contributor

@sahrens is looking at ListView right now

Contributor

vjeux commented Sep 28, 2015

@sahrens is looking at ListView right now

@jeanregisser

This comment has been minimized.

Show comment
Hide comment
@jeanregisser

jeanregisser Jan 18, 2016

Contributor

I have been using brentvatne@83c1b4e for 2 weeks now and it has helped smoothing out animations tremendously.
My main use case was popups that were appearing animated (scale & fade) with a ListView inside.

Does it still have a chance to land?

Contributor

jeanregisser commented Jan 18, 2016

I have been using brentvatne@83c1b4e for 2 weeks now and it has helped smoothing out animations tremendously.
My main use case was popups that were appearing animated (scale & fade) with a ListView inside.

Does it still have a chance to land?

@brentvatne

This comment has been minimized.

Show comment
Hide comment
@brentvatne

brentvatne Jan 18, 2016

Collaborator

@jeanregisser - I've since forked ListView into something I just called FeedView (because I use it in a feed :P) that has pretty much the same effect: https://gist.github.com/brentvatne/80675663483c2015bbe2

It also has a nice feature for infinite scrolling: if you set pageSize to 10, it will render these rows in interruptible chunks (using the same logic as Incremental / IncrementalPresenter discussed here: #4953) and only reveal the rows when all of them have rendered.

In my opinion, ListView should probably always work like this, cc @sahrens

Collaborator

brentvatne commented Jan 18, 2016

@jeanregisser - I've since forked ListView into something I just called FeedView (because I use it in a feed :P) that has pretty much the same effect: https://gist.github.com/brentvatne/80675663483c2015bbe2

It also has a nice feature for infinite scrolling: if you set pageSize to 10, it will render these rows in interruptible chunks (using the same logic as Incremental / IncrementalPresenter discussed here: #4953) and only reveal the rows when all of them have rendered.

In my opinion, ListView should probably always work like this, cc @sahrens

@grabbou

This comment has been minimized.

Show comment
Hide comment
@sahrens

This comment has been minimized.

Show comment
Hide comment
@sahrens

sahrens Apr 26, 2016

Contributor

WindowedListView is still very experimental, so I wouldn't rely on it yet.

Have you been using it in your apps? How has it been working out?

On Apr 25, 2016, at 10:48 AM, Mike Grabowski <notifications@github.commailto:notifications@github.com> wrote:

Is this still relevant given WindowedListView? https://github.com/facebook/react-native/blob/master/Libraries/Experimental/WindowedListView.js#L70


You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHubhttps://github.com/facebook/react-native/issues/2990#issuecomment-214457014

Contributor

sahrens commented Apr 26, 2016

WindowedListView is still very experimental, so I wouldn't rely on it yet.

Have you been using it in your apps? How has it been working out?

On Apr 25, 2016, at 10:48 AM, Mike Grabowski <notifications@github.commailto:notifications@github.com> wrote:

Is this still relevant given WindowedListView? https://github.com/facebook/react-native/blob/master/Libraries/Experimental/WindowedListView.js#L70


You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHubhttps://github.com/facebook/react-native/issues/2990#issuecomment-214457014

@lacker

This comment has been minimized.

Show comment
Hide comment
@lacker

lacker Oct 21, 2016

Contributor

Since this RFC has been stale a while I'm going to close the issue. Hope you got the comments you desired. :D

Contributor

lacker commented Oct 21, 2016

Since this RFC has been stale a while I'm going to close the issue. Hope you got the comments you desired. :D

@lacker lacker closed this Oct 21, 2016

@facebook facebook locked as resolved and limited conversation to collaborators Jul 21, 2018

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.