Nativescript: iOS ScrollView & ListView issue with dynamically resized content (ngIf, visibility, textWrap)

Created on 18 Feb 2019  路  7Comments  路  Source: NativeScript/NativeScript

Result: The UI is misplaced when the size is changed dynamically (for a view that is no part of the initially visible content inside the Scrolling area)

In cases when the content of the children inside a ScrollView or ListView is changing its size dynamically, the top content of the ScrollView/ ListView is misplaced and the UI is broken.

Happens only on iOS (tested with IPhoineX).

Test application demonstrating the above with ngIf, visibility and textWrap.

Steps to reproduce:

  • Run the app on iPhoneX
  • Use the button to show/hide long multiline text content.
  • Scroll outside of the initially loaded items and repeat the above step. The scroll to the top to observe the misplaced UI.

Reported via t.1388181

list-view ios sev2

Most helpful comment

Hi @edusperoni, that worked! In the end all I had to do was add iosOverflowSafeAreaEnabled="false" to the scrollview, and then it started functioning as intended again.

This gets us out of the woods, thanks!

All 7 comments

Hi @MartoYankov, is there any quick & dirty workaround you can think of? I don't mind patching node_modules locally.

Could you try manually setting iosOverflowSafeArea to false on each component? I currently don't have an iPhone to test, but this property is acting up sometimes on ListViews/ScrollViews

Hi @edusperoni, that worked! In the end all I had to do was add iosOverflowSafeAreaEnabled="false" to the scrollview, and then it started functioning as intended again.

This gets us out of the woods, thanks!

@NickIliev @MartoYankov I can confirm adding iosOverflowSafeAreaEnabled="false" to the outer ScrollView in Nick's test app also fixes the issue there. @edusperoni thanks a million!

Glad to see it working!

Just to add, you can put iosOverflowSafeArea on the gridlayouts and textviews. In our case we had a stacklayout acting up inside a listview, so we just disabled it there.

This might be useful if you want to overflow the scrollview. (Haven't tested on iPhone X, so can't say for sure)

Sorry, I was off a bit. I'm glad you were able to find a workaround. Indeed, disabling the safe area should fix such issues. I made a patch PR with a fix. You can check it out and test it with the scenarios in your apps. Let me know if there are more such issues.

This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

Was this page helpful?
0 / 5 - 0 ratings