Many issues for builds after 10 Jan 2020

23 views
Skip to first unread message

Hasni Faiçal

unread,
Jan 15, 2020, 11:42:13 AM1/15/20
to CodenameOne Discussions
Hi All

Many issues for builds after 10 Jan 2020, we have issues with RenderList and SideMenuCommand.
RenderList: This list is always empty (blank), The content size is proportional to number of items added, however it shows as blank.
SideMenuCommand: After opening dialog, the Menu icon disappear.
Please advice, this is urgent, we have a deadline for production.

Best.

Steve Hannah

unread,
Jan 15, 2020, 1:41:58 PM1/15/20
to codenameone...@googlegroups.com
I suspect all of these issues can be solved by calling setAllowEnableLayoutOnPaint(true) on the Form/Dialog that is having problems.

--
You received this message because you are subscribed to the Google Groups "CodenameOne Discussions" group.
To unsubscribe from this group and stop receiving emails from it, send an email to codenameone-discu...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/codenameone-discussions/00fecd0c-b156-41ce-9a96-74a9d7edf521%40googlegroups.com.


--
Steve Hannah
Software Developer
Codename One

Dave Dyer

unread,
Jan 15, 2020, 3:38:40 PM1/15/20
to CodenameOne Discussions

That worked for my actual app, but in the test case I developed (see issue #2989),  setting
the flag doesn't help.   Until a real fix is developed, manually triggering layout may be necessary.

Ivan

unread,
Jan 21, 2020, 3:01:52 PM1/21/20
to CodenameOne Discussions
 My app has also similar problems. I have to call revalidate() on places where the app previously repaint automatically and on other places I have to replace repaint() with revalidate() to repaint the form.

But I found this post and calling setAllowEnableLayoutOnPaint(true) resolved my issues ... for now
thanks

Steve Hannah

unread,
Jan 21, 2020, 4:33:50 PM1/21/20
to codenameone...@googlegroups.com
I recommend trying to fix these issues without resorting to the setAllowEnableLayoutOnPaint(true).  We turned that option off as default because of noticeable graphics performance differences on devices.  In some cases it makes sense that you should need to "revalidate" instead of "repaint", if the container needs to be relaid out.  If you have a case that "doesn't make sense", or that doesn't seem to work at all without the setAllowEnableLayoutOnPaint(true), please file an issue with a self-contained test case so we can address it.  

Additionally, it is almost always better to use revalidateWithAnimationSafety() instead of revalidate(), as this will avoid conflicts with layout animations which may be in progress.

Best regards

Steve

--
You received this message because you are subscribed to the Google Groups "CodenameOne Discussions" group.
To unsubscribe from this group and stop receiving emails from it, send an email to codenameone-discu...@googlegroups.com.

Dave Dyer

unread,
Jan 21, 2020, 9:02:51 PM1/21/20
to CodenameOne Discussions

It may be enough to embed component.add in runInEdt

Reply all
Reply to author
Forward
0 new messages