You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[Jetchat] Update to be edge-to-edge and add animated IME support (android#306)
* Add Accompanist-Insets dependency
* Set system bars to transparent and draw behind them
* Update Scaffold content to be edge-to-edge
* Update Conversation to go edge-to-edge
* Update Profile to go edge-to-edge
* Enable animated insets support
* Fix tests
* Add more comments to Insets modifier usage
* Update README
* One more comment
Copy file name to clipboardExpand all lines: Jetchat/README.md
+10
Original file line number
Diff line number
Diff line change
@@ -44,6 +44,16 @@ When the Emoji panel is shown the keyboard must be hidden and vice versa. This i
44
44
### Multiple types of animations and transitions
45
45
This sample uses animations ranging from simple `AnimatedVisibility` in [FunctionalityNotAvailablePanel](app/src/main/java/com/example/compose/jetchat/conversation/UserInput.kt) to choreographed transitions found in the [FloatingActionButton](https://material.io/develop/android/components/floating-action-button) of the Profile screen and implemented in [AnimatingFabContent](app/src/main/java/com/example/compose/jetchat/conversation/UserInput.kt)
46
46
47
+
### Edge-to-edge UI with synchronized IME transitions
48
+
This sample is laid out [edge-to-edge](https://medium.com/androiddevelopers/gesture-navigation-going-edge-to-edge-812f62e4e83e), drawing its content behind the system bars for a more immersive look.
49
+
50
+
The sample also supports synchronized IME transitions when running on API 30+ devices. See the use of `Modifier.navigationBarsWithImePadding()` in [ConversationContent](app/src/main/java/com/example/compose/jetchat/conversation/UserInput.kt).
51
+
52
+
<imgsrc="screenshots/ime-transition.gif" />
53
+
54
+
The sample uses the
55
+
[Accompanist Insets library](https://chrisbanes.github.io/accompanist/insets/) for WindowInsets support.
56
+
47
57
### Saved state across configuration changes
48
58
Some composable state survives activity or process recreation, like `currentInputSelector` in [UserInput](app/src/main/java/com/example/compose/jetchat/conversation/UserInput.kt).
0 commit comments