{ "id": "90788", "key": "TIMOB-8869", "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": [], "resolution": { "id": "2", "description": "The problem described is an issue which will never be fixed.", "name": "Won't Fix" }, "resolutiondate": "2012-04-27T12:43:51.000+0000", "created": "2012-04-24T00:25:49.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "SupportTeam", "api" ], "versions": [ { "id": "13271", "description": "Release 2.1.0", "name": "Release 2.1.0", "archived": false, "released": true, "releaseDate": "2012-06-29" } ], "issuelinks": [ { "id": "23719", "type": { "id": "10002", "name": "Duplicate", "inward": "is duplicated by", "outward": "duplicates" }, "inwardIssue": { "id": "105801", "key": "TIMOB-11918", "fields": { "summary": "Android: TableView - Textfields covered by keyboard when invoked second time.", "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": "Medium", "id": "3" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "16887", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "88966", "key": "TIMOB-8332", "fields": { "summary": "Android: tableView textField focus is lost while typing", "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": "Medium", "id": "3" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "29593", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "99597", "key": "TIMOB-10548", "fields": { "summary": "Android:Tableview:Soft keyboard launch revokes focus from rows (containing textfield)", "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": "Medium", "id": "3" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "23413", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "105644", "key": "TIMOB-11903", "fields": { "summary": "Android: TextField in a TableViewRow loses focus mysteriously and can't be focused with .focus()", "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": "Medium", "id": "3" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "16960", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "91108", "key": "TIDOC-593", "fields": { "summary": "APIDoc: TableViews with TextFields and SOFT_INPUT_ADJUST_RESIZE on Android", "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": "Low", "id": "4" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } } ], "assignee": { "name": "vduggal", "key": "vduggal", "displayName": "Vishal Duggal", "active": false, "timeZone": "America/Los_Angeles" }, "updated": "2017-03-22T18:08:37.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": "h2. Problem Description\r\nThe soft keyboard might partially or fully cover the textField. \r\n\r\nh2. Steps to reproduce and code sample\r\n1. Create a tableView with a number or rows with a textField. Set the windowSoftInputMode property for the window.\r\n2. Click on one of the textField in the lower part of the screen (the part that should then be covered by the soft keyboard)\r\nResult: keyboard opens, the tableView it's moved up but the keyboard partially cover the focused textField\r\n3. Click on back button and click again in the textField\r\nResult: keyboard open, but the tableView does not scroll up. The keyboard covers also the focused textField.\r\n\r\nCode sample\r\n{code}\r\nvar win = Ti.UI.createWindow({\r\n title:'pippo',\r\n backgroundColor:'white',\r\n windowSoftInputMode:Ti.UI.Android.SOFT_INPUT_ADJUST_PAN\r\n});\r\n\r\n \r\n \r\nvar data=[];\r\n\r\nfunction createRows(i) {\r\n\t\tvar row = Titanium.UI.createTableViewRow({\r\n\t\t\theight : 70,\r\n\t\t\tbackgroundColor : 'white'\r\n\t\t});\r\n\t\t\r\n\r\n\t\tvar inputTextField = Titanium.UI.createTextField({\r\n\t\t\tcolor : '#ff7c00',\r\n\t\t\ttop : 10,\r\n\t\t\theight : 50,\r\n\t\t\ttextAlign : 'right',\r\n\t\t\twidth : '25%',\r\n\t\t\thintText : '',\r\n\t\t\tleft : '65%',\r\n\t\t\tright : '8%',\r\n\t\t\tsoftKeyboardOnFocus : (Ti.UI.Android) ? Titanium.UI.Android.SOFT_KEYBOARD_SHOW_ON_FOCUS : '',\r\n\t\t\tborderStyle : Titanium.UI.INPUT_BORDERSTYLE_ROUNDED,\r\n\t\t\tkeyboardType : Titanium.UI.KEYBOARD_NUMBERS_PUNCTUATION,\r\n\t\t\treturnKeyType : Titanium.UI.RETURNKEY_DONE,\r\n\t\t\tfont : {\r\n\t\t\t\tfontSize : 20,\r\n\t\t\t\tfontColor : '#ff7c00',\r\n\t\t\t\tfontWeight : 'bold',\r\n\t\t\t\tfontFamily : 'Helvetica Neue'\r\n\t\t\t}\r\n\t\t});\r\n\t\tinputTextField.addEventListener('return', function() {\r\n\t\t\talert('return');\r\n\t\t\tinputTextField.blur();\r\n\t\t});\r\n\r\n\t\trow.add(inputTextField);\r\n\t\treturn row;\r\n\t}\r\n\r\n\r\nfor( i = 0; i <= 20; i++) {\r\n\tvar row = createRows(i);\r\n\tdata.push(row);\r\n};\r\n \r\n \r\n\r\nvar tv = Ti.UI.createTableView({\r\n\tbottom:120,\r\n\tdata:data\r\n});\r\n\r\nwin.add(tv);\r\n\r\n \r\n \r\nvar view1 = Ti.UI.createView({\r\n backgroundColor:'blue',\r\n bottom:0,\r\n height:100,\r\n});\r\nwin.add(view1);\r\n \r\nwin.open();\r\n{code}\r\n\r\n\r\nh2. Additional notes\r\nBug reported by ING.", "attachment": [], "flagged": false, "summary": "Android: soft keyboard is covering the tableViewRow textField ", "creator": { "name": "fcasali", "key": "fcasali", "displayName": "Federico Casali", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "fcasali", "key": "fcasali", "displayName": "Federico Casali", "active": true, "timeZone": "America/Los_Angeles" }, "environment": "TiSDK 2.1 \r\nAndroid OS", "comment": { "comments": [ { "id": "192804", "author": { "name": "vduggal", "key": "vduggal", "displayName": "Vishal Duggal", "active": false, "timeZone": "America/Los_Angeles" }, "body": "It is generally not a good idea to put up text fields in TableViews in Android because of the underlying Android behavior of the TableView temporarily stealing focus while scrolling. The same functionality can be achieved by using a scrollView instead.\r\n\r\n{code}\r\nvar win = Ti.UI.createWindow({\r\n\ttitle:'pippo',\r\n\tbackgroundColor:'white',\r\n\twindowSoftInputMode:Ti.UI.Android.SOFT_INPUT_ADJUST_PAN\r\n});\r\n \r\nvar curTop = 0;\r\n\r\n\r\nfunction createRows(i) {\r\n\tvar row = Titanium.UI.createView({\r\n\t\twidth:'100%',\r\n \theight : 70,\r\n \tleft:0,\r\n \ttop:curTop,\r\n \tbackgroundColor : 'white',\r\n \tborderColor:'#bbb',\r\n \tborderWidth:1\r\n\t});\r\n\tvar inputTextField = Titanium.UI.createTextField({\r\n\t\tcolor : '#ff7c00',\r\n\t\ttop : 10,\r\n\t\theight : 50,\r\n\t\ttextAlign : 'right',\r\n\t\twidth : '25%',\r\n\t\thintText : '',\r\n\t\tleft : '65%',\r\n\t\tright : '8%',\r\n\t\tborderStyle : Titanium.UI.INPUT_BORDERSTYLE_ROUNDED,\r\n\t\tkeyboardType : Titanium.UI.KEYBOARD_NUMBERS_PUNCTUATION,\r\n\t\treturnKeyType : Titanium.UI.RETURNKEY_DONE,\r\n\t\tfont : {\r\n\t\t\tfontSize : 20,\r\n\t\t\tfontColor : '#ff7c00',\r\n\t\t\tfontWeight : 'bold',\r\n\t\t\tfontFamily : 'Helvetica Neue'\r\n\t }\r\n\t});\r\n\tinputTextField.addEventListener('return', function() {\r\n\t\talert('return');\r\n\t\tinputTextField.blur();\r\n });\r\n\t\r\n\trow.add(inputTextField);\r\n return row;\r\n}\r\n\r\n\r\nvar scrollView = Ti.UI.createScrollView({\r\n\tbottom:120,\r\n\tcontentWidth:'auto',\r\n\tcontentHeight:'auto'\r\n})\r\n\r\nfor( i = 0; i <= 20; i++) {\r\n\tvar row = createRows(i);\r\n\tscrollView.add(row);\r\n\tcurTop += 70;\r\n};\r\nwin.add(scrollView);\r\n\r\nvar view1 = Ti.UI.createView({\r\n backgroundColor:'blue',\r\n bottom:0,\r\n height:100,\r\n});\r\nwin.add(view1);\r\n \r\nwin.open();\r\n{code}", "updateAuthor": { "name": "vduggal", "key": "vduggal", "displayName": "Vishal Duggal", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2012-04-26T13:52:01.000+0000", "updated": "2012-04-26T13:52:01.000+0000" }, { "id": "192839", "author": { "name": "vduggal", "key": "vduggal", "displayName": "Vishal Duggal", "active": false, "timeZone": "America/Los_Angeles" }, "body": "The underlying issue is with the Android ListView implementation. Nothing we can do at the platform level.", "updateAuthor": { "name": "vduggal", "key": "vduggal", "displayName": "Vishal Duggal", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2012-04-26T16:19:24.000+0000", "updated": "2012-04-26T16:19:24.000+0000" }, { "id": "192980", "author": { "name": "jyounus", "key": "jyounus", "displayName": "Junaid Younus", "active": true, "timeZone": "Europe/London" }, "body": "Vishal, if I run this code, the soft keyboard seems to still cover up the textfield. Here is a screenshot: http://h9.abload.de/img/device-2012-04-27-103ycxpy.png\r\n\r\nNow if I run the same code again, but this time comment out line 4 (windowSoftInputMode:Ti.UI.Android.SOFT_INPUT_ADJUST_PAN), it seems to work fine, it doesn't overlap anything anymore. \r\n\r\nIs this the expected behavior?", "updateAuthor": { "name": "jyounus", "key": "jyounus", "displayName": "Junaid Younus", "active": true, "timeZone": "Europe/London" }, "created": "2012-04-27T12:03:05.000+0000", "updated": "2012-04-27T12:03:05.000+0000" }, { "id": "192992", "author": { "name": "vduggal", "key": "vduggal", "displayName": "Vishal Duggal", "active": false, "timeZone": "America/Los_Angeles" }, "body": "When you comment out the windowSoftInputMode the window is following the SOFT_INPUT_ADJUST_RESIZE policy (you'll see the blue box come up) as in resizing the views so that the textField is visible. Again this is an underlying OS issue that we can not handle on the platform level. ", "updateAuthor": { "name": "vduggal", "key": "vduggal", "displayName": "Vishal Duggal", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2012-04-27T12:43:36.000+0000", "updated": "2012-04-27T12:43:36.000+0000" }, { "id": "194786", "author": { "name": "pdowsett", "key": "pdowsett", "displayName": "Paul Dowsett", "active": true, "timeZone": "Europe/London" }, "body": "Thanks for your help earlier, Federico - it really helped!\r\nI'm going to see if we can add the following to the docs, to help people get around this issue.\r\n\r\n{code:lang=javascript|title=app.js}\r\nvar currentTop = 0;\r\n\r\nvar win = Ti.UI.createWindow({\r\n backgroundColor:'white'\r\n});\r\n\r\nif (Ti.UI.Android){\r\n win.windowSoftInputMode = Ti.UI.Android.SOFT_INPUT_ADJUST_PAN;\r\n}\r\n\r\nfunction createRow(i) {\r\n var row = Ti.UI.createView({\r\n backgroundColor: 'white',\r\n borderColor: '#bbb',\r\n borderWidth: 1,\r\n width:'100%', height: 70,\r\n top: currentTop, left: 0\r\n });\r\n var inputTextField = Ti.UI.createTextField({\r\n hintText: 'Enter value ' + i,\r\n keyboardType: Ti.UI.KEYBOARD_NUMBERS_PUNCTUATION,\r\n top: 10, left: '10%',\r\n width: '80%', height: 60\r\n });\r\n row.add(inputTextField);\r\n return row;\r\n}\r\n\r\nvar scrollView = Ti.UI.createScrollView({\r\n bottom:120,\r\n contentHeight: 'auto'\r\n});\r\n\r\nfor(var i = 0; i <= 20; i++){\r\nvar row = createRow(i);\r\n scrollView.add(row);\r\n currentTop += 70;\r\n}\r\nwin.add(scrollView);\r\n\r\nvar label = Ti.UI.createLabel({\r\n backgroundColor:'darkgray',\r\n text: 'Your advert here',\r\n textAlign: 'center',\r\n bottom:0,\r\n width: Titanium.UI.FILL, height:100\r\n});\r\nwin.add(label);\r\nwin.open();\r\n{code}", "updateAuthor": { "name": "pdowsett", "key": "pdowsett", "displayName": "Paul Dowsett", "active": true, "timeZone": "Europe/London" }, "created": "2012-05-14T18:44:37.000+0000", "updated": "2012-05-15T03:27:11.000+0000" }, { "id": "414837", "author": { "name": "lmorris", "key": "lmorris", "displayName": "Lee Morris", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Closing ticket as the issue will not fix and with reference to the above comments. A workaround has been provided.", "updateAuthor": { "name": "lmorris", "key": "lmorris", "displayName": "Lee Morris", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2017-03-22T18:08:37.000+0000", "updated": "2017-03-22T18:08:37.000+0000" } ], "maxResults": 6, "total": 6, "startAt": 0 } } }