{ "id": "133311", "key": "TIMOB-17423", "fields": { "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "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": [], "resolution": null, "resolutiondate": null, "created": "2014-07-17T07:03:04.000+0000", "priority": { "name": "None", "id": "6" }, "labels": [ "TCSupport", "infinitescroll", "listview", "marker" ], "versions": [ { "id": "15422", "description": "Release 3.3.0", "name": "Release 3.3.0", "archived": false, "released": true, "releaseDate": "2014-07-16" } ], "issuelinks": [ { "id": "39427", "type": { "id": "10001", "name": "Cloners", "inward": "is cloned into", "outward": "is cloned from" }, "inwardIssue": { "id": "133910", "key": "TIMOB-17424", "fields": { "summary": "Android: Add ListView \"change\" event to be fired when items change", "status": { "description": "The issue is open and ready for the assignee to start work on it.", "name": "Open", "id": "1", "statusCategory": { "id": 2, "key": "new", "colorName": "blue-gray", "name": "To Do" } }, "priority": { "name": "None", "id": "6" }, "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "subtask": false } } } } ], "assignee": null, "updated": "2018-02-28T20:04:18.000+0000", "status": { "description": "The issue is open and ready for the assignee to start work on it.", "name": "Open", "id": "1", "statusCategory": { "id": 2, "key": "new", "colorName": "blue-gray", "name": "To Do" } }, "components": [ { "id": "10206", "name": "iOS", "description": "iOS Platform" } ], "description": "Infinite scroll is a common concept used in long lists/tables. Both I (https://github.com/FokkeZB/nl.fokkezb.infiniteScroll/pull/24) and yourself (https://github.com/appcelerator-se/InfiniteListView/blob/master/app/controllers/index.js) have been trying to implement this in the new ListView.\r\n\r\nWhen you keep it synchronous and integrated like the second example this is simple, but wrapped in a generic widget you run into the issue on setting and moving the marker when the list is first populated or items are added later through other means then through the widget detecting the user scrolling to the end.\r\n\r\nI think the {{marker}}-event is fine and I understand why the {{scroll}}-event needed to be removed to improve performance. However, I think it would be even better if complimented by a {{change}}-event that would fire when the content of the list changes:\r\n\r\n* A section is added/removed (/changed?)\r\n* An item is added/removed (/changed?)\r\n\r\nWith this event such a widget would be able to re-set the marker to the last item.\r\n\r\nAn alternative that might be even better is to have a {{end}}-event that fires when the list is scrolled to the end. This would *not* allow you to already start loading when the user is *almost* at the end though, so I would still call for the {{change}}-event (as well).", "attachment": [], "flagged": false, "summary": "iOS: Add ListView \"change\" event to be fired when items change", "creator": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "subtasks": [], "reporter": { "name": "fokkezb", "key": "fokke", "displayName": "Fokke Zandbergen", "active": true, "timeZone": "Europe/Amsterdam" }, "environment": "SDK 3.3.0.GA", "comment": { "comments": [ { "id": "316321", "author": { "name": "mpmiranda", "key": "mpmiranda", "displayName": "Mauro Parra-Miranda", "active": true, "timeZone": "America/Mexico_City" }, "body": "Thanks for your report! The platform team will set the priority on this. ", "updateAuthor": { "name": "mpmiranda", "key": "mpmiranda", "displayName": "Mauro Parra-Miranda", "active": true, "timeZone": "America/Mexico_City" }, "created": "2014-07-30T17:15:54.000+0000", "updated": "2014-07-30T17:15:54.000+0000" } ], "maxResults": 1, "total": 1, "startAt": 0 } } }