{ "id": "171464", "key": "TIMOB-25937", "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": [ { "id": "20115", "name": "Release 7.3.0", "archived": false, "released": true, "releaseDate": "2018-08-17" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2018-04-18T00:25:46.000+0000", "created": "2018-04-05T21:16:21.000+0000", "priority": { "name": "Medium", "id": "3" }, "labels": [ "ScrollView", "TextField", "android" ], "versions": [], "issuelinks": [], "assignee": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2018-06-21T22:18:36.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": "*Summary:*\r\nWhen a TextField is within a vertical ListView, ScrollView, or TableView... horizontal TextField scrolling will be canceled if you drag your finger too far up/down and the vertically scrolling parent view will steal/intercept all touch events from there. This makes scrolling a TextField difficult.\r\n\r\n*Expected Behavior:*\r\nOnce horizontal scrolling has started in a TextField, the parent view should no longer be able to scroll vertically until your finger has been released.\r\n\r\n*Steps to Reproduce:*\r\n# Build/run the below code on Android.\r\n# Start dragging a TextField horizontally.\r\n# As you drag it horizontally, drag up or down.\r\n# Notice that the TextField no longer scrolls horizontally and you're now vertically scrolling the parent ScrollView instead.\r\n\r\n{code:javascript}\r\nvar window = Ti.UI.createWindow();\r\nvar scrollView = Ti.UI.createScrollView(\r\n{\r\n\tshowVerticalScrollIndicator: true,\r\n\tlayout: \"vertical\",\r\n});\r\nfor (var index = 1; index <= 20; index++) {\r\n\tvar row = Ti.UI.createView(\r\n\t{\r\n\t\tlayout: \"horizontal\",\r\n\t\twidth: Ti.UI.FILL,\r\n\t\theight: Ti.UI.SIZE,\r\n\t});\r\n\trow.add(Ti.UI.createLabel(\r\n\t{\r\n\t\ttext: \"Row \" + index.toString(),\r\n\t\tleft: \"5dp\",\r\n\t}));\r\n\trow.add(Ti.UI.createTextField(\r\n\t{\r\n\t\tvalue: \"Welcome to the Appcelerator Platform! The Appcelerator Platform helps you develop cross-platform mobile applications using the Titanium SDK, Alloy, Appcelerator Studio and the Appcelerator CLI, then lets you manage the entire lifecycle of the application with debugging, testing, deploying, crash monitoring and analytic data collection.\",\r\n\t\tleft: \"5dp\",\r\n\t\tright: \"5dp\",\r\n\t\twidth: Ti.UI.FILL,\r\n\t\theight: Ti.UI.SIZE,\r\n\t}));\r\n\tscrollView.add(row);\r\n}\r\nwindow.add(scrollView);\r\nwindow.open();\r\n{code}\r\n\r\n*Notes:*\r\n* A vertical scrolling TextArea does not have this problem since it supports \"nested\" scrolling.\r\n* iOS does not allow horizontal scrolling of a TextField at all while in a vertically scrolling parent, but I don't think we should match this behavior on Android since it makes it less convenient to use.\r\n", "attachment": [], "flagged": false, "summary": "Android: Horizontal TextField scrolling should not be canceled by scrollable parent view", "creator": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "environment": null, "closedSprints": [ { "id": 1018, "state": "closed", "name": "2018 Sprint 07 SDK", "startDate": "2018-03-25T21:59:36.637Z", "endDate": "2018-04-08T21:59:00.000Z", "completeDate": "2018-04-08T17:55:14.467Z", "originBoardId": 114 }, { "id": 1021, "state": "closed", "name": "2018 Sprint 08 SDK", "startDate": "2018-04-08T17:57:36.122Z", "endDate": "2018-04-22T17:57:00.000Z", "completeDate": "2018-04-22T22:51:19.120Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "436557", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "PR (master): https://github.com/appcelerator/titanium_mobile/pull/9985", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2018-04-06T00:58:36.000+0000", "updated": "2018-04-06T00:58:36.000+0000" }, { "id": "436959", "author": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "body": "FR Passed. PR merged.", "updateAuthor": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2018-04-18T00:25:32.000+0000", "updated": "2018-04-18T00:25:32.000+0000" }, { "id": "438606", "author": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Verified the fix in SDK 7.3.0.v20180618182516.\r\nClosing.", "updateAuthor": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2018-06-21T22:18:30.000+0000", "updated": "2018-06-21T22:18:30.000+0000" } ], "maxResults": 3, "total": 3, "startAt": 0 } } }