Skip to content
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

Unable to display SwipeRows of variable height #39

Closed
zamiang opened this issue Jul 8, 2016 · 7 comments
Closed

Unable to display SwipeRows of variable height #39

zamiang opened this issue Jul 8, 2016 · 7 comments

Comments

@zamiang
Copy link

zamiang commented Jul 8, 2016

I am in the process of transitioning a react native 0.29 ListView to your SwipeListView.

I've noticed that due to properties on a container I cannot style, the list items are all of equal height.

ListView on the left, SwipeListView on the right.
row-height

Happy to help out here -- maybe passing style down the chain? -- but i'm not sure where to start.

Thanks

@zamiang zamiang changed the title Unable to display SwipeListItems of variable height Unable to display SwipeRows of variable height Jul 8, 2016
@jemise111
Copy link
Owner

Hey @zamiang happy to look into this but I think I'm missing the issue. The first two items look like they're of equal height. The third item looks larger on the right but it's not equal to the height of any other items. So is the issue that the height of the third item is unexpectedly larger?

If you could provide some snippets of code for the ListView and SwipeListView that would be really helpful.

Also if you'll take a look at this line:

https://github.com/jemise111/react-native-swipe-list-view/blob/master/components/SwipeListView.js#L104

you'll see that any props you pass to the SwipeListView are passed to the underlying ListView, meaning a style or contentContainerStyle prop will be passed along and you can style the container as you need.

@zamiang
Copy link
Author

zamiang commented Jul 8, 2016

Thanks! Here is a bit more detail. TLDR - All rows have flex: 1 applied in a way that I cannot override. https://github.com/jemise111/react-native-swipe-list-view/blob/master/components/SwipeRow.js#L250

Color key:

  • yellow is background of the the SwipeListView
  • purple and gray are alternating backgrounds of a component passed to renderRow

row-height

I believe the correct fix would be to allow passing custom styles to the SwipeRow (similar to the SwipeListView) rather than removing that line.

@jemise111
Copy link
Owner

@zamiang Okay so without your code to run and I can't really test if this will fix your problem. But when checkout this PR, #40, when you have a sec and let me know if it fixes your issue. Then I'll merge and release a new version. Thanks!

@zamiang
Copy link
Author

zamiang commented Jul 11, 2016

That looks great! Thanks so much.

I have gained a bit more insight into the root issue. React-native 0.28 made changes to how flex: 1 vs flex: 0 works. I have been seeing similar pull requests / issues with other projects. In the release notes you will see this note:

"flex styling property behavior now behaves slightly differently. If you previously used flex: 1 where not necessary this change will likely break your layout as the measuring behavior is slightly different than before due to performance optimizations. Removing that unnecessary flex: 1 will solve your layout in most cases."

That note suggests that just removing the flex: 1 declaration would fix the issue -- and remove the need (in this case!) for styling the SwipeRow (though that may be a good thing for the project anyway)

@jemise111
Copy link
Owner

@zamiang I merged in the PR to allow for passing in styles. I'll do a release over the weekend. Good call on the flex: 1 issue, I'll take a look and see if it makes sense to remove it. Leaving this open until then. Thanks!

@jemise111
Copy link
Owner

Removed flex: 1, closing. Fixed by #40 and #43

@zamiang
Copy link
Author

zamiang commented Jul 16, 2016

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants