The session/chat screen's KeyboardAvoidingView used behavior={undefined}
on Android, relying entirely on the native android:windowSoftInputMode
adjustResize (set in AndroidManifest.xml) to shrink the window and push
the agent/model toolbar + composer above the keyboard.
Since the app adopted Expo's mandatory edge-to-edge display, Android no
longer resizes the window when the keyboard opens (the system assumes
insets are handled dynamically), so adjustResize became a no-op —
leaving the toolbar and input completely hidden behind the keyboard.
Switch to behavior="padding" on both platforms so KeyboardAvoidingView
pushes the composer up using its own JS-measured keyboard height,
independent of native window resize.
Co-authored-by: test <test@test.local>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -593,7 +593,19 @@ export default function SessionScreen() {
|
|||||||
|
|
||||||
<KeyboardAvoidingView
|
<KeyboardAvoidingView
|
||||||
style={[s.container, isDark && s.containerDark]}
|
style={[s.container, isDark && s.containerDark]}
|
||||||
behavior={Platform.OS === "ios" ? "padding" : undefined}
|
// Both platforms use "padding" so the composer/toolbar is pushed up
|
||||||
|
// above the keyboard via JS-measured keyboard height.
|
||||||
|
//
|
||||||
|
// Android previously relied on the native android:windowSoftInputMode
|
||||||
|
// (adjustResize, see AndroidManifest.xml) with behavior={undefined}
|
||||||
|
// to let the OS resize the window (see #70/#53). Since adopting
|
||||||
|
// Expo's mandatory edge-to-edge display, Android no longer resizes
|
||||||
|
// the window when the keyboard opens — the system assumes insets are
|
||||||
|
// handled dynamically — so adjustResize became a no-op and the
|
||||||
|
// bottom toolbar + input were left completely hidden behind the
|
||||||
|
// keyboard (#147). "padding" restores avoidance without depending
|
||||||
|
// on native resize.
|
||||||
|
behavior="padding"
|
||||||
keyboardVerticalOffset={Platform.OS === "ios" ? 90 : 0}
|
keyboardVerticalOffset={Platform.OS === "ios" ? 90 : 0}
|
||||||
>
|
>
|
||||||
{/* Session info pulldown */}
|
{/* Session info pulldown */}
|
||||||
|
|||||||
Reference in New Issue
Block a user