{ "id": "128700", "key": "TIMOB-16837", "fields": { "issuetype": { "id": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "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-04-04T10:21:07.000+0000", "priority": { "name": "Low", "id": "4" }, "labels": [], "versions": [ { "id": "15857", "description": "Release 3.2.2", "name": "Release 3.2.2", "archived": false, "released": true, "releaseDate": "2014-03-09" } ], "issuelinks": [], "assignee": null, "updated": "2018-02-28T20:04:11.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": "10224", "name": "TiAPI", "description": "This component is used for cross-platform API work. Specifications are most likely to use this component." } ], "attachment": [], "flagged": false, "summary": "TiAPI: Add property to support Inverted ListView (similar to Skype)", "creator": { "name": "lees_oz", "key": "lees_oz", "displayName": "Lev", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "lees_oz", "key": "lees_oz", "displayName": "Lev", "active": true, "timeZone": "America/Los_Angeles" }, "environment": null, "comment": { "comments": [ { "id": "300176", "author": { "name": "ragrawal", "key": "ragrawal", "displayName": "Ritu Agrawal", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Please take a look at TIMOB-16244 and let us know if that would suffice for your use case.", "updateAuthor": { "name": "ragrawal", "key": "ragrawal", "displayName": "Ritu Agrawal", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-04-08T05:39:58.000+0000", "updated": "2014-04-08T05:39:58.000+0000" }, { "id": "300194", "author": { "name": "lees_oz", "key": "lees_oz", "displayName": "Lev", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Having scroll in listview would help me to trigger LoadMore, but still one problem remains - with appending/deleting items from list. \r\nWhen I scroll up and LoadMore is triggered, I add some items to the top. Here the problem is that after items are added, list automatically jumps to the top of block I've added (i.e. scroll position remains constant, relatively to top). Then I need to scroll back down (scrollToItem). That jumping looks weird though.", "updateAuthor": { "name": "lees_oz", "key": "lees_oz", "displayName": "Lev", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-04-08T14:02:08.000+0000", "updated": "2014-04-08T14:02:54.000+0000" }, { "id": "300334", "author": { "name": "ragrawal", "key": "ragrawal", "displayName": "Ritu Agrawal", "active": true, "timeZone": "America/Los_Angeles" }, "body": "If you use InsertItemAt() method to add the item to the end of the ListView (similar to Skype) then the list should not jump to the top. Do you have a test case to demonstrate this issue?", "updateAuthor": { "name": "ragrawal", "key": "ragrawal", "displayName": "Ritu Agrawal", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-04-09T05:36:11.000+0000", "updated": "2014-04-09T05:36:11.000+0000" }, { "id": "300348", "author": { "name": "lees_oz", "key": "lees_oz", "displayName": "Lev", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Anything what adds/removes items/sections from list could work in 2 different ways - remain scroll position of count from Top, or from Bottom (or somewhere in the middle - also possible). Now it's always Top.\r\n\r\nHere's code:\r\n{code}\r\nlistSections = getListSections(); // sections, which I'm going to add to the top of the list, total height is about 2000\r\n_lv.insertSectionAt(0, listSections, {animated: false}); // when I do that, the top item I see is the one which is section == 0, index == 0. However as my list grows from bottom to top, I expect to stay at the same position, not to miss anything what was added\r\n// To compensate that, I scroll it back down\r\n_lv.scrollToItem(listSections.length, 0, {animated: false}); \r\n{code}\r\nThis results in \"jumping\".\r\n\r\nAnother issue is that until you apply setTimeout to scrollToItem, sections will not be added correctly (that results in a lot of empty space in the bottom of list)\r\n{code}\r\nsetTimeout(function() {_lv.scrollToItem(listSections.length, 0, {animated: false}); }, 0);\r\n{code}\r\nHowever on device (iPhone 4) it could work buggy also. Maybe create another issue for that.\r\n\r\n", "updateAuthor": { "name": "lees_oz", "key": "lees_oz", "displayName": "Lev", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-04-09T13:04:14.000+0000", "updated": "2014-04-09T15:28:20.000+0000" }, { "id": "300477", "author": { "name": "ragrawal", "key": "ragrawal", "displayName": "Ritu Agrawal", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Moving this improvement request to engineering for further evaluation and prioritization.", "updateAuthor": { "name": "ragrawal", "key": "ragrawal", "displayName": "Ritu Agrawal", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-04-10T05:58:02.000+0000", "updated": "2014-04-10T05:58:02.000+0000" }, { "id": "304579", "author": { "name": "jeffatstepup", "key": "jeffatstepup", "displayName": "Jeff Antram", "active": true, "timeZone": "Europe/London" }, "body": "This feature would be very useful for our app - we have implemented 2 \"iMessage\" style pages.\r\n\r\nJust to add to this, the documented Android bug that stops \"scroll to item\" working makes it impossible to add a new item and guarantee that it has been scrolled into view.\r\n\r\nhttp://docs.appcelerator.com/titanium/3.0/#!/api/Titanium.UI.ListView-method-scrollToItem\r\n \"On Android 4.x, the list does not stop at the correct position. This is a known bug in Android. (Android Issue #37278)\"", "updateAuthor": { "name": "jeffatstepup", "key": "jeffatstepup", "displayName": "Jeff Antram", "active": true, "timeZone": "Europe/London" }, "created": "2014-05-13T16:06:42.000+0000", "updated": "2014-05-13T16:06:42.000+0000" } ], "maxResults": 6, "total": 6, "startAt": 0 } } }