{ "id": "146438", "key": "TIMOB-19431", "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": { "id": "10000", "description": "", "name": "Done" }, "resolutiondate": "2018-08-02T07:09:55.000+0000", "created": "2015-03-31T15:30:37.000+0000", "epic": { "id": 167343, "key": "TIMOB-24638", "name": "Implement Android design library feature", "summary": "Android: Design Support Library Features", "color": { "key": "color_3" }, "done": false }, "priority": { "name": "High", "id": "2" }, "labels": [ "SupportTeam", "hyperloop" ], "versions": [], "issuelinks": [], "assignee": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "updated": "2018-08-06T17:34:51.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": "Requesting to support Floating Action Button\r\n\r\n* http://www.google.com/design/spec/components/buttons-floating-action-button.html\r\n* http://www.materialdoc.com/floating-action-button/\r\n\r\n----\r\n\r\nI'm trying to create a transparent view on top (in front) of the main view. \r\n\r\nI want the main view (at the back) to have 100% width and height. The second view is placed at the bottom 20% height an 100% width .\r\n\r\nThe second view is transparent with multiple circular button or images which i'll use as buttons.\r\n\r\nCurrently I can't get views to overlap (one on infront (top) and one at the back) they just get aligned next to each other (top, bottom, left or right).\r\n\r\nI've attached an example with one button on the left", "attachment": [ { "id": "54727", "filename": "Floating button.jpg", "author": { "name": "KRantao", "key": "krantao", "displayName": "Kgomotso Rantao", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2015-03-31T15:30:37.000+0000", "size": 83998, "mimeType": "image/jpeg" }, { "id": "54807", "filename": "Video.MOV", "author": { "name": "KRantao", "key": "krantao", "displayName": "Kgomotso Rantao", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2015-04-06T11:11:53.000+0000", "size": 1144412, "mimeType": "video/quicktime" } ], "flagged": false, "summary": "Android: Support Floating Action Button", "creator": { "name": "KRantao", "key": "krantao", "displayName": "Kgomotso Rantao", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "KRantao", "key": "krantao", "displayName": "Kgomotso Rantao", "active": true, "timeZone": "America/Los_Angeles" }, "environment": "Titanium Studio 3.4", "closedSprints": [ { "id": 1058, "state": "closed", "name": "2018 Sprint 16 SDK", "startDate": "2018-07-29T22:26:06.486Z", "endDate": "2018-08-12T22:26:00.000Z", "completeDate": "2018-08-13T17:38:16.757Z", "originBoardId": 114 }, { "id": 1045, "state": "closed", "name": "2018 Sprint 13 SDK", "startDate": "2018-06-17T20:47:13.621Z", "endDate": "2018-07-01T20:47:00.000Z", "completeDate": "2018-07-02T18:40:05.029Z", "originBoardId": 114 }, { "id": 920, "state": "closed", "name": "2017 Sprint 14 SDK", "startDate": "2017-07-02T16:29:41.455Z", "endDate": "2017-07-16T16:29:00.000Z", "completeDate": "2017-07-17T14:39:47.328Z", "originBoardId": 114 }, { "id": 1034, "state": "closed", "name": "2018 Sprint 10 SDK", "startDate": "2018-05-07T00:03:21.636Z", "endDate": "2018-05-21T00:03:00.000Z", "completeDate": "2018-05-20T20:54:58.928Z", "originBoardId": 114 }, { "id": 1050, "state": "closed", "name": "2018 Sprint 14 SDK", "startDate": "2018-07-01T18:40:57.193Z", "endDate": "2018-07-15T18:40:00.000Z", "completeDate": "2018-07-16T03:27:08.720Z", "originBoardId": 114 }, { "id": 1035, "state": "closed", "name": "2018 Sprint 11 SDK", "startDate": "2018-05-20T20:57:43.542Z", "endDate": "2018-06-03T20:57:00.000Z", "completeDate": "2018-06-04T15:13:14.425Z", "originBoardId": 114 }, { "id": 1053, "state": "closed", "name": "2018 Sprint 15 SDK", "startDate": "2018-07-15T21:52:05.453Z", "endDate": "2018-07-29T21:52:00.000Z", "completeDate": "2018-07-29T22:25:11.723Z", "originBoardId": 114 }, { "id": 1039, "state": "closed", "name": "2018 Sprint 12 SDK", "startDate": "2018-06-03T15:22:23.401Z", "endDate": "2018-06-17T15:22:00.000Z", "completeDate": "2018-06-18T20:45:36.363Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "348553", "author": { "name": "ahossain", "key": "ahossain", "displayName": "Amimul Hossain", "active": false, "timeZone": "Asia/Dhaka" }, "body": "Hello, Kgomotso Rantao\r\n\r\nAre you trying to do something like this?\r\n\r\n{code}\r\nvar win = Ti.UI.createWindow({\r\n fullscreen: true\r\n});\r\n\r\nvar view1 = Titanium.UI.createView({\r\n backgroundColor:'white',\r\n width:Ti.UI.FILL,\r\n height:Ti.UI.FILL\r\n});\r\n\r\nwin.add(view1);\r\n\r\nvar view2 = Titanium.UI.createView({\r\n backgroundColor:'red',\r\n width:70,\r\n height:70,\r\n left: 50,\r\n bottom: 50,\r\n borderRadius: 35,\r\n viewShadowRadius : 4,\r\n viewShadowColor : 'gray'\r\n});\r\n\r\nview1.add(view2);\r\n\r\nwin.open();\r\n\r\n{code}\r\n\r\nReply with your requirements. Thanks.\r\n", "updateAuthor": { "name": "ahossain", "key": "ahossain", "displayName": "Amimul Hossain", "active": false, "timeZone": "Asia/Dhaka" }, "created": "2015-04-06T06:12:33.000+0000", "updated": "2015-04-06T06:12:33.000+0000" }, { "id": "348570", "author": { "name": "KRantao", "key": "krantao", "displayName": "Kgomotso Rantao", "active": true, "timeZone": "America/Los_Angeles" }, "body": "The button on the bottom right doesn't move, it's as if it's \"floating\" on top of the other view", "updateAuthor": { "name": "KRantao", "key": "krantao", "displayName": "Kgomotso Rantao", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2015-04-06T11:11:53.000+0000", "updated": "2015-04-06T11:11:53.000+0000" }, { "id": "348572", "author": { "name": "KRantao", "key": "krantao", "displayName": "Kgomotso Rantao", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Hi Amimul Hossain\r\n\r\nYou have the same idea in mind but with a different result. I attached a video using a more common application.\r\nThe Android gmail app and the floating button on the bottom right.\r\n\r\nI'll incorporate the code you added in the comment above to explain:\r\n\r\nView1 is vertically scrollable (Scrollview with vertical layout) like the example in the video. View2 two is part of the display but doesn't move with View1 scrolling movement. \r\nSo this simply means it's not added onto View1 (e.g view1.add(view2)) it's \"floating\" on top of View1 as it scrolls.\r\n\r\nCheck the video example attached of the Android Gmail App. The button/view on the bottom right keeps it's position. ", "updateAuthor": { "name": "KRantao", "key": "krantao", "displayName": "Kgomotso Rantao", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2015-04-06T11:13:47.000+0000", "updated": "2015-04-06T11:14:20.000+0000" }, { "id": "356208", "author": { "name": "ahossain", "key": "ahossain", "displayName": "Amimul Hossain", "active": false, "timeZone": "Asia/Dhaka" }, "body": "Hello, [~KRantao] Now i understand what you are asking for, Similar to Android floating action buttons. This has no support for Appcelerator yet. Maybe you need to develop a module on this feature to support with Appcelerator. You can follow this community [link|https://community.appcelerator.com/topic/714/help-us-prioritize-the-new-features-to-be-implemented-in-the-appcelerator-titanium-sdk] where people are talking about these features. Thanks.", "updateAuthor": { "name": "ahossain", "key": "ahossain", "displayName": "Amimul Hossain", "active": false, "timeZone": "Asia/Dhaka" }, "created": "2015-06-29T09:05:47.000+0000", "updated": "2015-06-29T09:05:47.000+0000" }, { "id": "374897", "author": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "body": "To be considered for implementation via hyperloop", "updateAuthor": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2016-01-20T02:50:26.000+0000", "updated": "2016-01-20T02:50:26.000+0000" }, { "id": "405798", "author": { "name": "dirleidionisio", "key": "dirleidionisio", "displayName": "Dirlei Dionísio", "active": true, "timeZone": "America/Sao_Paulo" }, "body": "Hi guys, any plans do implement this feature?", "updateAuthor": { "name": "dirleidionisio", "key": "dirleidionisio", "displayName": "Dirlei Dionísio", "active": true, "timeZone": "America/Sao_Paulo" }, "created": "2017-01-30T23:36:02.000+0000", "updated": "2017-01-30T23:36:02.000+0000" }, { "id": "405799", "author": { "name": "dirleidionisio", "key": "dirleidionisio", "displayName": "Dirlei Dionísio", "active": true, "timeZone": "America/Sao_Paulo" }, "updateAuthor": { "name": "dirleidionisio", "key": "dirleidionisio", "displayName": "Dirlei Dionísio", "active": true, "timeZone": "America/Sao_Paulo" }, "created": "2017-01-30T23:38:29.000+0000", "updated": "2017-01-30T23:38:29.000+0000" }, { "id": "413470", "author": { "name": "isener", "key": "isener", "displayName": "ILAY SENER", "active": true, "timeZone": "Australia/Sydney" }, "body": "I have implemented something using animation based on 'onTouchEnd' to get the new position dimensions. Seems to work OK on simulator, but not perfect. Yet to test it on a device.\r\n\r\nWould be something like below:\r\n\r\n//this function gets triggered upon onTouchEnd\r\nfunction btnTouchEnd(e) {\r\n // console.log(\"x & y coordinates are \" + e.x + \" - \" + e.y);\r\n var t1 = Ti.UI.create2DMatrix();\r\n t1 = t1.translate(e.x, e.y);\r\n var a1 = Ti.UI.createAnimation();\r\n a1.transform = t1;\r\n $.floatBtn.animate(a1); //floatBtn is my view\r\n}\r\n", "updateAuthor": { "name": "isener", "key": "isener", "displayName": "ILAY SENER", "active": true, "timeZone": "Australia/Sydney" }, "created": "2017-03-17T04:40:19.000+0000", "updated": "2017-03-17T04:40:19.000+0000" }, { "id": "420069", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "I have a Proof-of-Concept working with Hyperloop and will create a module for it this sprint. Basic requirements:\r\n* Size\r\n* Color (background & riffle)\r\n* Image\r\n* Actions\r\n* Show / Hide", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-05-19T21:16:35.000+0000", "updated": "2017-05-19T21:16:35.000+0000" }, { "id": "428221", "author": { "name": "gfigueras", "key": "gfigueras", "displayName": "Guillermo Figueras", "active": true, "timeZone": "Europe/Madrid" }, "body": "Any news on this?", "updateAuthor": { "name": "gfigueras", "key": "gfigueras", "displayName": "Guillermo Figueras", "active": true, "timeZone": "Europe/Madrid" }, "created": "2017-09-21T07:07:31.000+0000", "updated": "2017-09-21T07:07:31.000+0000" }, { "id": "439680", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "There is an open source module available to support this functionality and all possible configuration. Please refer to [Ti.FAB|https://github.com/loop-modules/Ti.FAB] for details and examples. Since this is an Android-only API, it should be hooked into the project if needed, but will not be shipped with the cross-platform core that focusses on native parity across the platforms.", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2018-08-02T07:09:55.000+0000", "updated": "2018-08-02T07:09:55.000+0000" }, { "id": "439867", "author": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Closed as completed. If this is in error, please reopen.", "updateAuthor": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2018-08-06T17:34:51.000+0000", "updated": "2018-08-06T17:34:51.000+0000" } ], "maxResults": 13, "total": 13, "startAt": 0 } } }