{ "id": "117091", "key": "ALOY-739", "fields": { "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false }, "project": { "id": "11113", "key": "ALOY", "name": "Alloy", "projectCategory": { "id": "10400", "description": "Tools for developing applications", "name": "Tooling" } }, "fixVersions": [ { "id": "15402", "description": "Alloy 1.2.0, concurrent with SDK 3.1.0", "name": "Alloy 1.2.0", "archived": false, "released": true, "releaseDate": "2013-08-15" }, { "id": "15530", "description": "2013 Sprint 14", "name": "2013 Sprint 14", "archived": true, "released": true, "releaseDate": "2013-07-15" } ], "resolution": { "id": "5", "description": "All attempts at reproducing this issue failed, or not enough information was available to reproduce the issue. Reading the code produces no clues as to why this behavior would occur. If more information appears later, please reopen the issue.", "name": "Cannot Reproduce" }, "resolutiondate": "2013-07-12T16:24:37.000+0000", "created": "2013-07-11T13:46:18.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [], "versions": [], "issuelinks": [], "assignee": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2013-07-15T18:25:40.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": "12332", "name": "Titanium SDK", "description": "Any integration or issues with the TiSDK" }, { "id": "12326", "name": "XML", "description": "View XML and parsing" } ], "description": "Details in Q&A: http://developer.appcelerator.com/question/154749/performance-issue-with-scrollableview-on-android-when-using-alloy-framework\r\n\r\ntest case images have been attached\r\n\r\nh2. test case (traditional)\r\n\r\nh4. app.js\r\n\r\n{code:javascript}\r\nvar win = Ti.UI.createWindow();\r\nwin.add(require('scroll')());\r\nwin.open();\r\n{code}\r\n\r\nh4. scroll.js\r\n{code:javascript}\r\nfunction randomColor() {\r\n return '#'+Math.floor(Math.random()*10777215).toString(16);\r\n}\r\n\r\n//FirstView Component Constructor\r\nfunction FirstView() {\r\n //create object instance, a parasitic subclass of Observable\r\n var self = Ti.UI.createView();\r\n \r\n var lorem = \"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus vel magna dolor. In id laoreet diam. Aliquam elementum tincidunt fringilla. Fusce est felis, tempor et orci nec, rhoncus aliquet diam. In commodo, sem id ultrices commodo, diam risus ultrices nibh, ac pellentesque leo magna in massa. Proin posuere dignissim molestie. Nullam eleifend orci id nulla vestibulum, eu tristique justo cursus. In elementum vehicula venenatis. Proin rhoncus ligula vitae dolor mattis tempus. Maecenas viverra ligula eu est tempor semper. Sed ullamcorper sagittis risus at volutpat. Fusce dapibus libero et dignissim rutrum.\";\r\n var views = [];\r\n for (var i = 0; i < 4; i++) {\r\n var view = Ti.UI.createView({\r\n backgroundColor: randomColor(),\r\n layout: 'vertical'\r\n });\r\n view.add(Ti.UI.createLabel({\r\n text: lorem,\r\n color:'#fff',\r\n width:'auto',\r\n height:'auto',\r\n top: '10dp'\r\n }));\r\n for (var j = 1; j <= 6; j++) {\r\n view.add(Ti.UI.createImageView({\r\n image: '/' + j + '.jpg',\r\n width: '95%',\r\n top: '10dp'\r\n }));\r\n }\r\n views.push(view);\r\n }\r\n \r\n var scrollView = Titanium.UI.createScrollableView({\r\n views:views,\r\n showPagingControl:false,\r\n pagingControlHeight:30,\r\n maxZoomScale:2.0,\r\n currentPage:1\r\n });\r\n \r\n self.add(scrollView);\r\n \r\n return self;\r\n}\r\n \r\nmodule.exports = FirstView;\r\n{code}\r\n\r\nh2. test case (alloy)\r\n\r\nh4. index.xml\r\n\r\n{code:xml}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n{code}\r\n\r\nh4. index.js\r\n\r\n{code:javascript}\r\n$.index.open();\r\n{code}\r\n\r\nh4. index.tss\r\n\r\n{code:javascript}\r\n'Label': {\r\n\tcolor: \"white\", \r\n\ttop: \"10dp\",\r\n\theight: \"auto\", \r\n\twidth: \"auto\"\r\n}\r\n\r\n'ImageView': {\r\n\twidth: \"95%\",\r\n\ttop: \"10dp\"\r\n}\r\n\r\n'#scroller': {\r\n\tshowPagingControl:false,\r\n pagingControlHeight:30,\r\n maxZoomScale:2.0,\r\n currentPage:1\r\n}\r\n{code}", "attachment": [ { "id": "40712", "filename": "1.jpg", "author": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-07-12T16:25:10.000+0000", "size": 46132, "mimeType": "image/jpeg" }, { "id": "40713", "filename": "2.jpg", "author": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-07-12T16:25:10.000+0000", "size": 35809, "mimeType": "image/jpeg" }, { "id": "40714", "filename": "3.jpg", "author": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-07-12T16:25:10.000+0000", "size": 25200, "mimeType": "image/jpeg" }, { "id": "40715", "filename": "4.jpg", "author": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-07-12T16:25:10.000+0000", "size": 118456, "mimeType": "image/jpeg" }, { "id": "40716", "filename": "5.jpg", "author": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-07-12T16:25:10.000+0000", "size": 53715, "mimeType": "image/jpeg" }, { "id": "40717", "filename": "6.jpg", "author": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-07-12T16:25:10.000+0000", "size": 41621, "mimeType": "image/jpeg" } ], "flagged": false, "summary": "ScollableView performance lagging on Android in Alloy", "creator": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "environment": null, "comment": { "comments": [ { "id": "261637", "author": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "body": "I developed the above test cases and tested with the following tools and was unable to reproduce any difference in performance between the alloy and traditional approach.\r\n\r\n* TiSDK 3.1.1\r\n* Alloy 1.2.0\r\n* Galaxy Nexus, Android 4.2.2", "updateAuthor": { "name": "tlukasavage", "key": "tlukasavage", "displayName": "Tony Lukasavage", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-07-12T16:24:37.000+0000", "updated": "2013-07-12T16:24:37.000+0000" } ], "maxResults": 1, "total": 1, "startAt": 0 } } }