{ "id": "107430", "key": "TIMOB-12220", "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": [ { "id": "15079", "description": "2013 Sprint 02 API", "name": "2013 Sprint 02 API", "archived": true, "released": true, "releaseDate": "2013-01-28" }, { "id": "14812", "description": "2013 Sprint 02", "name": "2013 Sprint 02", "archived": true, "released": true, "releaseDate": "2013-01-28" } ], "resolution": { "id": "2", "description": "The problem described is an issue which will never be fixed.", "name": "Won't Fix" }, "resolutiondate": "2013-01-15T12:40:55.000+0000", "created": "2013-01-07T06:10:53.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "regression" ], "versions": [], "issuelinks": [ { "id": "27377", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "112182", "key": "AC-2156", "fields": { "summary": "Android: Custom titanium_tabgroup.xml doesn't work anymore", "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" } }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } } ], "assignee": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2013-05-08T09:41:17.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": "h1. Problem description\r\nStarting from SDK 3.0.0, it is not possible anymore to customize the position of the TabGroup bar, in order to set it at bottom.\r\n\r\nh1. Steps to reproduce\r\n1. Create the default tabbed app\r\n2. add the file platform/android/res/layout/titanium_tabgroup.xml with the following content:\r\n\r\n{code}\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n{code}\r\n\r\nRunning on SDK 2.1.4, the TabGroup is shown on bottom; with SDK 3.0.0 and 3.1.0 this is not working anymore.", "attachment": [], "flagged": false, "summary": "Android: cannot set TabGroup on bottom from SDK 3.0.0", "creator": { "name": "dcassenti", "key": "dcassenti", "displayName": "Davide Cassenti", "active": true, "timeZone": "Europe/Berlin" }, "subtasks": [], "reporter": { "name": "dcassenti", "key": "dcassenti", "displayName": "Davide Cassenti", "active": true, "timeZone": "Europe/Berlin" }, "environment": "SDK 3.0.0\r\nAndroid 4.1", "comment": { "comments": [ { "id": "233740", "author": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Before SDK 3.0, we used [TabActivity|http://developer.android.com/reference/android/app/TabActivity.html] to implement the TabGroup. Since TabActivity is deprecated, we now use [TabHost|http://developer.android.com/reference/android/widget/TabHost.html] to implement the TabGroup for API level < 11 in SDK 3.0. We define the TabHost layout in the code. That's why the custom TabHost layout xml file does not work anymore. \nBased on the guideline of [Pure Android|http://developer.android.com/design/patterns/pure-android.html], the bottom tab bars are not recommended. In addition, for API level >= 11 we use ActionBar to implement the TabGroup, in which case tab bars can only be on the top. In order to provide a consistent experience, we don't recommend using bottom tab bars.", "updateAuthor": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-01-09T15:30:56.000+0000", "updated": "2013-01-09T15:30:56.000+0000" }, { "id": "234425", "author": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Resolve the ticket as Won't fix since it's never been supported in our SDK and it's not a recommended way to design Android apps.", "updateAuthor": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-01-15T12:40:55.000+0000", "updated": "2013-01-15T12:40:55.000+0000" }, { "id": "236242", "author": { "name": "ethraza", "key": "ethraza", "displayName": "Allan Brazute", "active": true, "timeZone": "America/Sao_Paulo" }, "body": "Hi.\r\n\r\nI understand and kind off agree to put tabs on top for a consistent experience.\r\nBut since my app is multiplataform and I would like it to be the same experience on iOS, Android and HTML5, I must ask: With Ti SDK 3+, there is a way to render tabs at bottom on Android?\r\n\r\nThank you.", "updateAuthor": { "name": "ethraza", "key": "ethraza", "displayName": "Allan Brazute", "active": true, "timeZone": "America/Sao_Paulo" }, "created": "2013-01-28T18:02:18.000+0000", "updated": "2013-01-28T18:02:18.000+0000" }, { "id": "236372", "author": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Hi Allan, since the layout is hard coded in our code now I don't think there is a way to render tabs at bottom except writing your own module to do it.", "updateAuthor": { "name": "pwang", "key": "pwang", "displayName": "Ping Wang", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2013-01-29T02:43:58.000+0000", "updated": "2013-01-29T02:43:58.000+0000" }, { "id": "245927", "author": { "name": "a.marcone", "key": "a.marcone", "displayName": "Alberto Marcone", "active": true, "timeZone": "Europe/Berlin" }, "body": "Sorry, this doesn't mean only that you can't move it to the bottom, but even that you can't hide them (in case you want to still use the tabs for managing the windows), so you always HAVE to use them. Unless you open and close windows manually and lose the going back actions.\r\n\r\n(Es: if you open your windows using Ti.UI.currentTab.open(newWin) and then close it, you'll go back to your previous window, if you open it with newWin.open() you have a totally different behavior.)\r\n\r\n\r\nSaying that it's not possible and closing the ticket it's quite an easy solution.", "updateAuthor": { "name": "a.marcone", "key": "a.marcone", "displayName": "Alberto Marcone", "active": true, "timeZone": "Europe/Berlin" }, "created": "2013-04-05T09:24:54.000+0000", "updated": "2013-04-05T09:24:54.000+0000" }, { "id": "250762", "author": { "name": "michael@webitstudios.com", "key": "michael@webitstudios.com", "displayName": "Michael DeGiovanni", "active": true, "timeZone": "Europe/Berlin" }, "body": "Hi Ping Wang, you stated that you are using the TabHost layout , so why not at least enable controls on the tab such as for example hiding the Tabhost: http://kb.gosi.at/content/36/111/en/how-to-hide-tabwidget-of-tabhost.html", "updateAuthor": { "name": "michael@webitstudios.com", "key": "michael@webitstudios.com", "displayName": "Michael DeGiovanni", "active": true, "timeZone": "Europe/Berlin" }, "created": "2013-05-08T09:41:17.000+0000", "updated": "2013-05-08T09:41:17.000+0000" } ], "maxResults": 9, "total": 9, "startAt": 0 } } }