{ "id": "170382", "key": "TIMOB-25535", "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": { "id": "2", "description": "The problem described is an issue which will never be fixed.", "name": "Won't Fix" }, "resolutiondate": "2018-09-09T21:23:29.000+0000", "created": "2017-11-19T17:33:41.000+0000", "priority": { "name": "Critical", "id": "1" }, "labels": [ "android", "drawerlayout", "material-design", "tabGroup", "tabs" ], "versions": [], "issuelinks": [ { "id": "57813", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "174013", "key": "TIMOB-27334", "fields": { "summary": "Android: Add TabGroup.add() method to support view overlays", "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": "Medium", "id": "3" }, "issuetype": { "id": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "subtask": false } } } } ], "assignee": null, "updated": "2019-08-15T21:02:08.000+0000", "status": { "description": "A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.", "name": "Resolved", "id": "5", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "10202", "name": "Android", "description": "Android Platform" } ], "description": "As far as I know, it is not possible to use tabs and a drawer menu simultaneously in Appcelerator Titanium. It would be great if those two elements could be combined. \r\n\r\nMaterial guidelines: https://material.io/guidelines/patterns/navigation.html#navigation-combined-patterns (see \"Combined patterns\" section, the part where it says \"Side nav and tab combinations\", or just check the images I attached).\r\n", "attachment": [ { "id": "63654", "filename": "patterns-navigation-patterncombinations7.png", "author": { "name": "gfigueras", "key": "gfigueras", "displayName": "Guillermo Figueras", "active": true, "timeZone": "Europe/Madrid" }, "created": "2017-11-19T17:33:28.000+0000", "size": 20371, "mimeType": "image/png" }, { "id": "63653", "filename": "patterns-navigation-patterncombinations8.png", "author": { "name": "gfigueras", "key": "gfigueras", "displayName": "Guillermo Figueras", "active": true, "timeZone": "Europe/Madrid" }, "created": "2017-11-19T17:33:28.000+0000", "size": 26408, "mimeType": "image/png" } ], "flagged": false, "summary": "Android: Support DrawerLayout with Ti.UI.TabGroup", "creator": { "name": "gfigueras", "key": "gfigueras", "displayName": "Guillermo Figueras", "active": true, "timeZone": "Europe/Madrid" }, "subtasks": [], "reporter": { "name": "gfigueras", "key": "gfigueras", "displayName": "Guillermo Figueras", "active": true, "timeZone": "Europe/Madrid" }, "environment": null, "closedSprints": [ { "id": 1070, "state": "closed", "name": "2018 Sprint 18 SDK", "startDate": "2018-08-26T16:14:35.297Z", "endDate": "2018-09-09T16:14:00.000Z", "completeDate": "2018-09-11T20:59:21.495Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "430989", "author": { "name": "sdarda", "key": "sdarda", "displayName": "Sharif AbuDarda", "active": false, "timeZone": "Asia/Dhaka" }, "body": "Hello, Can you share some native docs on this?", "updateAuthor": { "name": "sdarda", "key": "sdarda", "displayName": "Sharif AbuDarda", "active": false, "timeZone": "Asia/Dhaka" }, "created": "2017-11-19T19:49:32.000+0000", "updated": "2017-11-19T19:49:32.000+0000" }, { "id": "431012", "author": { "name": "gfigueras", "key": "gfigueras", "displayName": "Guillermo Figueras", "active": true, "timeZone": "Europe/Madrid" }, "body": "I could not find any native docs, the only thing I found was the link from the Material guidelines that I posted. Anyways, official Google apps like Play Store work like this, using tabs and a navigation drawer menu at the same time: https://imgur.com/a/4Tg6F\r\n\r\nIf you need some code, you can check this sample app I found on GitHub: https://github.com/lvaccaro/Android-Sliding-Tabs-And-Navigation-Drawer-With-Material-Design", "updateAuthor": { "name": "gfigueras", "key": "gfigueras", "displayName": "Guillermo Figueras", "active": true, "timeZone": "Europe/Madrid" }, "created": "2017-11-20T09:05:30.000+0000", "updated": "2017-11-20T09:05:30.000+0000" }, { "id": "436066", "author": { "name": "gfigueras", "key": "gfigueras", "displayName": "Guillermo Figueras", "active": true, "timeZone": "Europe/Madrid" }, "body": "Any news on this? Or at least someone has some kind of workaround to use the navigation drawer with tabs? ", "updateAuthor": { "name": "gfigueras", "key": "gfigueras", "displayName": "Guillermo Figueras", "active": true, "timeZone": "Europe/Madrid" }, "created": "2018-03-29T07:41:45.000+0000", "updated": "2018-03-29T07:41:45.000+0000" }, { "id": "436105", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "We don't plan on supporting this with a {{TabGroup}} since it has no root view to add a {{DrawerLayout}} overlay view to.\r\n\r\nBut that said, you can implement what you want via a {{ScrollableView}} instead with scrolling disabled. A {{ScrollableView}} is really just a paginated view just like {{TabGroup}}, but without the tabs. Titanium's native implementation between them is nearly the same on Android. So, it's perfect for this type of UI.\r\n\r\nHere's how to do it...\r\n{code:javascript}\r\n// Creates a page for a ScrollableView.\r\nfunction createPage(title) {\r\n\tvar page = Ti.UI.createView();\r\n\tpage.add(Ti.UI.createLabel({ text: title + \" View\" }));\r\n\tpage.pageTitle = title; // Add custom property used to name item in DrawerLayout.\r\n\treturn page;\r\n}\r\n\r\n// Set up a window with a ScrollableView that doesn't scroll.\r\n// We'll select ScrollableView pages via a DrawerLayout instead.\r\nvar window = Ti.UI.createWindow();\r\nvar scrollableView = Ti.UI.createScrollableView({\r\n\tviews: [\r\n\t\tcreatePage(\"Page 1\"),\r\n\t\tcreatePage(\"Page 2\"),\r\n\t\tcreatePage(\"Page 3\"),\r\n\t\tcreatePage(\"Page 4\"),\r\n\t\tcreatePage(\"Page 5\"),\r\n\t],\r\n\tscrollingEnabled: false,\r\n\tshowPagingControl: false,\r\n});\r\nwindow.add(scrollableView);\r\n\r\n// Create the drawer layout.\r\nvar drawerView = Ti.UI.createView({\r\n\tbackgroundColor: \"white\",\r\n\tlayout: \"vertical\",\r\n});\r\nscrollableView.views.forEach(function(page) {\r\n\tvar button = Ti.UI.createButton({ title: page.pageTitle });\r\n\tbutton.addEventListener(\"click\", function(e) {\r\n\t\tscrollableView.currentPage = scrollableView.views.indexOf(page);\r\n\t\tdrawerLayout.closeLeft();\r\n\t});\r\n\tdrawerView.add(button);\r\n});\r\nvar drawerLayout = Ti.UI.Android.createDrawerLayout({\r\n\tleftView: drawerView,\r\n});\r\nwindow.add(drawerLayout);\r\n\r\n// Set up ActionBar hamburger button to toggle drawer layout.\r\nwindow.addEventListener(\"open\", function(e) {\r\n\tvar actionBar = window.activity.actionBar;\r\n\tif (actionBar) {\r\n\t\tactionBar.displayHomeAsUp = true;\r\n\t\tactionBar.homeButtonEanbled = true;\r\n\t\tactionBar.onHomeIconItemSelected = function(e) {\r\n\t\t\tdrawerLayout.toggleLeft();\r\n\t\t};\r\n\t}\r\n});\r\n\r\n// Show the window.\r\nwindow.open();\r\n{code}\r\n", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2018-03-29T18:57:33.000+0000", "updated": "2018-03-29T18:57:33.000+0000" }, { "id": "436218", "author": { "name": "gfigueras", "key": "gfigueras", "displayName": "Guillermo Figueras", "active": true, "timeZone": "Europe/Madrid" }, "body": "@Joshua Quick thanks, I'll give it a try.", "updateAuthor": { "name": "gfigueras", "key": "gfigueras", "displayName": "Guillermo Figueras", "active": true, "timeZone": "Europe/Madrid" }, "created": "2018-04-03T11:32:41.000+0000", "updated": "2018-04-03T11:32:41.000+0000" }, { "id": "438919", "author": { "name": "rislam", "key": "rislam", "displayName": "Riduanul Islam", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Do we have any progress or any workaround, we can update to the customer?", "updateAuthor": { "name": "rislam", "key": "rislam", "displayName": "Riduanul Islam", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2018-07-02T14:35:10.000+0000", "updated": "2018-07-02T14:35:10.000+0000" }, { "id": "438935", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2018-07-02T17:37:24.000+0000", "updated": "2018-07-02T17:37:24.000+0000" }, { "id": "441424", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Resolving as \"Won't Fix\". In addition, SDK 7.5.0 will support a tabbed-bar for Android that behaves like a tab-group (in fact there will be two different styles: top and bottom tabs).", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2018-09-09T21:23:30.000+0000", "updated": "2018-09-09T21:23:30.000+0000" }, { "id": "441427", "author": { "name": "mdelmarter", "key": "mdelmarter", "displayName": "Matthew Delmarter", "active": true, "timeZone": "Pacific/Auckland" }, "body": "@hans I am very much looking forward to 7.5 and to seeing examples of the bottom aligned tabbed-bar behaving like a tab-group. \r\n\r\nSo far I have been very iOS focussed, where the tab-group loads windows and is a very structured top-level nav item. I am really hoping to see example code for Ti 7.5 that make it easy to transition an iOS tab-group across to the bottom aligned tab-group on Android, if that is possible.", "updateAuthor": { "name": "mdelmarter", "key": "mdelmarter", "displayName": "Matthew Delmarter", "active": true, "timeZone": "Pacific/Auckland" }, "created": "2018-09-09T23:50:45.000+0000", "updated": "2018-09-10T20:45:20.000+0000" }, { "id": "441457", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~mdelmarter], keep an eye on ticket [TIMOB-26354]. That's the ticket where we'll be adding a new bottom bar layout style to {{TabGroup}}. Thanks for your feedback. :)", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2018-09-10T20:42:43.000+0000", "updated": "2018-09-10T20:42:43.000+0000" } ], "maxResults": 15, "total": 15, "startAt": 0 } } }