{ "id": "176249", "key": "TIMOB-28503", "fields": { "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [ { "id": "21243", "description": "", "name": "Release 10.0.2", "archived": false, "released": true, "releaseDate": "2021-08-10" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2021-08-05T16:33:49.000+0000", "created": "2021-07-05T08:41:33.000+0000", "priority": { "name": "Critical", "id": "1" }, "labels": [ "android", "regression", "scrollableview" ], "versions": [ { "id": "21199", "description": "", "name": "Release 10.0.1", "archived": false, "released": true, "releaseDate": "2021-07-28" } ], "issuelinks": [ { "id": "59298", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "176199", "key": "TIMOB-28459", "fields": { "summary": "Android: ScrollableView with databinding in Footer/HeaderView not showing up", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "59299", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "176250", "key": "TIMOB-28504", "fields": { "summary": "Android: ScrollableView \"views\" property not returning what was assigned during creation before window open as of 10.0.1", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "priority": { "name": "Critical", "id": "1" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } } ], "assignee": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2021-08-05T16:33:49.000+0000", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "10202", "name": "Android", "description": "Android Platform" } ], "description": "I still need to pinpoint the exact cause of the issue, but our home screen scrollable-view does not render any more when using the 10.0.1 build. It seems to work sometimes but fails sporadically. -Note: This is an unreleased version, so it's not critical and can be fixed prior to the release.- Just noticed that 10.0.1 was released yesterday. Then this should really be fixed timely :-)", "attachment": [], "flagged": false, "summary": "Android: ScrollableView UI does not render any more (10.0.1 regression)", "creator": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "subtasks": [], "reporter": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "environment": null, "comment": { "comments": [ { "id": "458845", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~hknoechel], I did notice a regression and wrote it up here: [TIMOB-28504]\r\nNot sure if this is your issue, but it's the only bug I've found.", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2021-07-07T01:59:13.000+0000", "updated": "2021-07-07T01:59:13.000+0000" }, { "id": "458926", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "This is still an issue with latest 10_0_X. It is reproducible in our project (I think both you and Gary have access).", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2021-07-29T11:39:29.000+0000", "updated": "2021-07-29T11:39:29.000+0000" }, { "id": "458927", "author": { "name": "michael", "key": "michael", "displayName": "Michael Gangolf", "active": true, "timeZone": "Europe/Berlin" }, "body": "Have the same issue with 10.0.1.GA and 10.1.0. Looks like {{addView}} is not working\r\n\r\n10.0.0.GA:\r\n!https://www.migaweb.de/ti_102.png!\r\n\r\n10.0.1.GA:\r\n!https://www.migaweb.de/ti_101.png!\r\n\r\nusing:\r\n{code}\r\n$.view_scroller.addView(view_home.getView());\r\n$.view_scroller.addView(view_friends.getView());\r\n$.view_scroller.addView(view_planer.getView());\r\n$.view_scroller.addView(view_events.getView());\r\n$.view_scroller.addView(view_places.getView());\r\n{code}\r\n\r\nTried insertViewsAt too but still nothing", "updateAuthor": { "name": "michael", "key": "michael", "displayName": "Michael Gangolf", "active": true, "timeZone": "Europe/Berlin" }, "created": "2021-07-29T12:08:58.000+0000", "updated": "2021-07-29T12:23:06.000+0000" }, { "id": "458931", "author": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "body": "I'm attempting to create a reproducible test case, but can't reproduce the issue\r\n\r\n{code:js}\r\nconst win = Ti.UI.createWindow({ layout: 'vertical' });\r\nconst btn = Ti.UI.createButton({ title: 'LOAD' })\r\nconst sv = Ti.UI.createScrollableView({});\r\n\r\nfunction view (primary, secondary) {\r\n\tconst a = Ti.UI.createView({ backgroundColor: primary });\r\n\tconst b = Ti.UI.createView({\r\n\t\tbackgroundColor: secondary,\r\n\t\twidth: '50%',\r\n\t\theight: '50%'\r\n\t});\r\n\r\n\ta.add(b);\r\n\r\n\treturn a;\r\n}\r\n\r\nbtn.addEventListener('click', _ => {\r\n\tsv.addView(view('red', 'blue'));\r\n\tsv.addView(view('orange', 'purple'));\r\n\tsv.addView(view('green', 'yellow'));\r\n\r\n\twin.add(sv);\r\n});\r\n\r\nwin.add(btn);\r\nwin.open();\r\n{code}\r\n\r\nHow is the scrollableView nested, are the views added before its parent view is visible?", "updateAuthor": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2021-07-29T22:19:56.000+0000", "updated": "2021-07-29T22:19:56.000+0000" }, { "id": "458933", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "I'm able to reproduce this issue via [~hknoechel] app. I haven't figured out how to reproduce this issue via my own Classic app project yet. So, I had to rig [~hknoechel] Titanium app to be debuggable with the \"titanium_mobile\" SDK and Android _Studio (don't ask me how; it took me an hour and it was a pain to set up :P )_.\r\n\r\nThe issue is that views added after creation, but before the native view is created, can cause all of the added views to be removed when displayed. This is because the proxy is set up to add views via methods (ie: addView(), setViews(), etc.)... but the native view still reads the \"views\" property which will be empty/null and end up remove all native child views that were already created.\r\nhttps://github.com/appcelerator/titanium_mobile/blob/c7453230993e5d6a5a9cab3461737f8f58e86622/android/modules/ui/src/java/ti/modules/titanium/ui/widget/TiUIScrollableView.java#L385-L387\r\n", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2021-07-30T05:06:28.000+0000", "updated": "2021-07-30T05:06:28.000+0000" }, { "id": "458934", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "PR (master): https://github.com/appcelerator/titanium_mobile/pull/12989", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2021-07-30T05:06:43.000+0000", "updated": "2021-07-30T05:06:43.000+0000" }, { "id": "458938", "author": { "name": "michael", "key": "michael", "displayName": "Michael Gangolf", "active": true, "timeZone": "Europe/Berlin" }, "body": "-not tested the PR yet- but a simple timeout to wait until the window is open worked so I guess your fix is correct - but I'll test it soon! *Update:* PR works fine in my app\r\n\r\nStill would be interested in the Studio debug SDK ;)", "updateAuthor": { "name": "michael", "key": "michael", "displayName": "Michael Gangolf", "active": true, "timeZone": "Europe/Berlin" }, "created": "2021-07-30T21:50:33.000+0000", "updated": "2021-08-02T13:47:13.000+0000" }, { "id": "458957", "author": { "name": "eharris", "key": "eharris", "displayName": "Ewan Harris", "active": true, "timeZone": "Europe/Dublin" }, "body": "Test code:\r\n\r\n{code:js}\r\nconst win = Ti.UI.createWindow({ layout: 'vertical' });\r\nconst sv = Ti.UI.createScrollableView({ views: undefined });\r\n\r\nfunction view (primary, secondary) {\r\n\tconst a = Ti.UI.createView({ backgroundColor: primary });\r\n\tconst b = Ti.UI.createView({\r\n\t\tbackgroundColor: secondary,\r\n\t\twidth: '50%',\r\n\t\theight: '50%'\r\n\t});\r\n \r\n\ta.add(b);\r\n \r\n\treturn a;\r\n}\r\nsv.addView(view('red', 'blue'));\r\nsv.addView(view('orange', 'purple'));\r\nsv.addView(view('green', 'yellow'));\r\nwin.add(sv);\r\n\r\nwin.open();\r\n{code}", "updateAuthor": { "name": "eharris", "key": "eharris", "displayName": "Ewan Harris", "active": true, "timeZone": "Europe/Dublin" }, "created": "2021-08-05T16:26:55.000+0000", "updated": "2021-08-05T16:26:55.000+0000" }, { "id": "458958", "author": { "name": "eharris", "key": "eharris", "displayName": "Ewan Harris", "active": true, "timeZone": "Europe/Dublin" }, "body": "Merged to master and 10_0_X", "updateAuthor": { "name": "eharris", "key": "eharris", "displayName": "Ewan Harris", "active": true, "timeZone": "Europe/Dublin" }, "created": "2021-08-05T16:33:46.000+0000", "updated": "2021-08-05T16:33:46.000+0000" } ], "maxResults": 9, "total": 9, "startAt": 0 } } }