{ "id": "173001", "key": "TIMOB-26825", "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": null, "resolutiondate": null, "created": "2019-02-14T20:01:46.000+0000", "priority": { "name": "Low", "id": "4" }, "labels": [ "android", "engTriage", "titlebar", "toolbar" ], "versions": [], "issuelinks": [ { "id": "58633", "type": { "id": "10020", "name": "Depends", "inward": "is dependent of", "outward": "depends on" }, "outwardIssue": { "id": "175445", "key": "TIMOB-28086", "fields": { "summary": "Android: Update \"Toolbar\" to support material theme", "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": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "subtask": false } } } } ], "assignee": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2020-08-17T23:25:24.000+0000", "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" } }, "components": [ { "id": "10202", "name": "Android", "description": "Android Platform" } ], "description": "*Summary:*\r\nAndroid supports an [AppBarLayout|https://developer.android.com/reference/android/support/design/widget/AppBarLayout] feature which allows the top toolbar/titlebar to hidden when scrolling up and to be stretched to reveal more content when scrolling down. This is part of Google's material design and examples of this can be seen below.\r\nhttps://material.io/design/components/app-bars-top.html#behavior\r\n\r\n*Implementation Notes:*\r\nThis is not a trivial feature to implement. It involves putting our {{Toolbar}} within an {{AppBarLayout}} (that part is simple enough), but the {{AppBarLayout}} must be a direct descendent of a {{CoordinatorLayout}} in order for the nested scrolling to hide/show/stretch the {{AppBarLayout}}. So, this means modifying Titanium's {{TiCompositeLayout}} to either inherit from {{CompositeLayout}} or replicate its features... and this is the troublesome part.\r\n\r\nOr perhaps our implementation of this feature should be our Titanium view container for the whole thing ({{CompositeLayout}} with a built-in {{AppBarLayout}} and {{Toolbar}}) and the developer would then add a {{ScrollView}}, {{TableView}}, or {{ListView}} as a child to this container. This way we wouldn't have to muck with our {{TiCompositeLayout}} code at all since any change in that class is high-risk and affects everything else.\r\n\r\n*Hyperloop:*\r\nThere is currently an example on how to do this via hyperloop below. This can be used until Titanium has official support.\r\nhttps://github.com/m1ga/hyperloop.collapsingToolbarLayout\r\n", "attachment": [], "flagged": false, "summary": "Android: Add AppBarLayout support", "creator": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "environment": null, "comment": { "comments": [], "maxResults": 0, "total": 0, "startAt": 0 } } }