{ "id": "175443", "key": "TIMOB-28445", "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": [ { "id": "21201", "description": "", "name": "Release 10.1.0", "archived": false, "released": true, "releaseDate": "2021-09-28" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2021-08-18T08:43:31.000+0000", "created": "2020-08-15T19:59:00.000+0000", "priority": { "name": "Low", "id": "4" }, "labels": [ "android", "window" ], "versions": [], "issuelinks": [], "assignee": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2021-08-18T08:43:31.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": "Adds the possibility to use the FLAG_LAYOUT_NO_LIMITS flag to make the statusbar completly transparent. Currently you can only hide it (fullscreen) or make it semi transparent (extendSafeArea). \r\n\r\n{code}\r\nvar win = Ti.UI.createWindow({\r\n\ttitle: 'Demo App',\r\n\tbackgroundColor: \"#aaa\",\r\n\textendSafeArea: true,\r\n\twindowFlags: Ti.UI.Android.FLAG_LAYOUT_NO_LIMITS,\r\n});\r\nwin.open();\r\n{code}\r\n\r\n !68747470733a2f2f6d6967617765622e64652f74695f6e6f4c696d6974732e6a7067.jpg|thumbnail! \r\n\r\n*Note 1:*\r\nThis flag won't make the status bar transparent on Android 4.x or Android 10+. I believe you \"might\" have to make adjustments to the theme to make the top status bar transparent on Android 10 and higher, but Google would prefer that you make the status bar transparent via the theme instead.\r\n\r\n*Note 2:*\r\nThis flag breaks the \"safeAreaPadding\" feature. That is, setting the \"no limits\" flags means the window will ignore all insets, causing \"safeAreaPadding\" to return all zeros. This flag also breaks the keyboard \"adjustPan\" feature as well.\r\n\r\n*Work-Around:*\r\nOn older Titanium versions, you can use this flag \"today\" by using this constant's integer value as shown below.\r\n{code:javascript}\r\nconst FLAG_LAYOUT_NO_LIMITS = 512;\r\nconst window = Ti.UI.createWindow({\r\n\textendSafeArea: true,\r\n\ttheme: \"Theme.AppCompat.NoTitleBar\",\r\n\twindowFlags: FLAG_LAYOUT_NO_LIMITS,\r\n});\r\n{code}\r\n", "attachment": [ { "id": "67493", "filename": "68747470733a2f2f6d6967617765622e64652f74695f6e6f4c696d6974732e6a7067.jpg", "author": { "name": "michael", "key": "michael", "displayName": "Michael Gangolf", "active": true, "timeZone": "Europe/Berlin" }, "created": "2020-08-15T19:58:34.000+0000", "size": 285901, "mimeType": "image/jpeg" } ], "flagged": false, "summary": "Android: Add \"FLAG_LAYOUT_NO_LIMITS\" window constant", "creator": { "name": "michael", "key": "michael", "displayName": "Michael Gangolf", "active": true, "timeZone": "Europe/Berlin" }, "subtasks": [], "reporter": { "name": "michael", "key": "michael", "displayName": "Michael Gangolf", "active": true, "timeZone": "Europe/Berlin" }, "environment": null, "comment": { "comments": [ { "id": "456477", "author": { "name": "michael", "key": "michael", "displayName": "Michael Gangolf", "active": true, "timeZone": "Europe/Berlin" }, "body": "PR: https://github.com/appcelerator/titanium_mobile/pull/11911", "updateAuthor": { "name": "michael", "key": "michael", "displayName": "Michael Gangolf", "active": true, "timeZone": "Europe/Berlin" }, "created": "2020-08-15T19:59:36.000+0000", "updated": "2020-08-15T19:59:36.000+0000" }, { "id": "458678", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "The following PR replaces [~michael]'s PR by making this feature work via the {{Ti.UI.Window.windowFlags}} property.\r\n\r\nPR (master): https://github.com/appcelerator/titanium_mobile/pull/12809", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2021-05-13T03:19:03.000+0000", "updated": "2021-05-13T03:19:03.000+0000" }, { "id": "458971", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~michael], regarding the status bar and navigation bar not being transparent on Android 10 and higher, I think it can be done by adding the following to the \"-v29\" version of your theme.\r\n{code:xml}\r\nfalse\r\nfalse\r\n{code}\r\n\r\nAlternatively, the above can be done in Java by passing {{false}} to the following methods.\r\n[Window.setStatusBarContrastEnforced()|https://developer.android.com/reference/android/view/Window#setStatusBarContrastEnforced(boolean)]\r\n[Window.setNavigationBarContrastEnforced()|https://developer.android.com/reference/android/view/Window#setNavigationBarContrastEnforced(boolean)]\r\n\r\nI ran into a similar issue when attempting to set the bottom navigation bar to completely \"transparent\". Android 10+ would still show it as translucent unless I did the above.", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2021-08-09T23:56:15.000+0000", "updated": "2021-08-09T23:56:15.000+0000" } ], "maxResults": 3, "total": 3, "startAt": 0 } } }