Skip to content

Android: Issue when displayed in Modal #200

Description

@pfeiffer

There is an issue with the keyboard/height adjustments when displaying the component in a Modal.

It can be reproduced with the following simple render code:

<Image source={{ uri: 'http://cdn.pcwallart.com/images/dark-gradient-tumblr-wallpaper-1.jpg'}} style={{ flex: 1 }}>
  <GiftedChat />
</Image>

This renders the following:

When focusing the TextInput, the component correctly resizes and positiones the input bar:

However when the code above is wrapped in a <Modal> .. </Modal> the following happens when focusing the TextInput:

There are no issues on iOS.

Activity

  1. FaridSafi commented on Aug 16, 2016

    @FaridSafi
    Owner

    Can't test right now but I suggest to try to set a height to the Chat container

    <Image style={{
      height: Dimensions.get('window').height,
    }}>
      <GiftedChat />
    </Image>
  2. pfeiffer commented on Aug 16, 2016

    @pfeiffer
    Author

    Yeah, I tried that earlier, but with the same results (calculating for the status bar etc.)

  3. pfeiffer commented on Aug 16, 2016

    @pfeiffer
    Author

    I suspect that the whole view is "pushed" up, ie. the modal has full device height and that the GiftedChat component is resized, but that the windowSoftInputMode=adjustResize doesn't apply to Modals on Android.

  4. pfeiffer commented on Aug 16, 2016

    @pfeiffer
    Author

    Actually, digging through the react-native code I see that Modal on Android is implemented as Dialog.

    The issue is that adjustResize isn't being applied to the Dialog that displays the modal. This can be fixed by adding the following to res/values/styles.xml:

    <style name="Theme.FullScreenDialog">
         <item name="android:windowSoftInputMode">adjustResize</item>
    </style>
    

    Might be worth adding to the README :-)

  5. FaridSafi commented on Aug 16, 2016

    @FaridSafi
    Owner

    Good catch @pfeiffer!
    Where is located res/values/styles.xml exactly ?

  6. pfeiffer commented on Aug 16, 2016

    @pfeiffer
    Author

    Thanks! It's located at android/app/src/main/res/values/styles.xml :-)

  7. FaridSafi commented on Aug 16, 2016

    @FaridSafi
    Owner

    Thank you, I will add in readme

  8. RealAmissio commented on Oct 11, 2017

    @RealAmissio

    I tried, but after modifying style.xml, it still doesn't work, but at 0.14 I can use it directly. When I upgrade to 0.27, the keyboard is blocked,please help me

  9. RealAmissio commented on Oct 11, 2017

    @RealAmissio

    the same in the modal

  10. Fr33maan commented on Oct 12, 2017

    @Fr33maan

    @RealAmissio I just had an issue by trying to put the chat component in a ScrollView.
    I succeded in making it works without the modification, @pfeiffer do you think React Native team could have change it ? I still don't see the style applied for modal here but it works ...

  11. iswetak commented on Apr 28, 2020

    @iswetak

    Hi @FaridSafi please help
    How to configure gift-chat to send message when enter key is pressed?
    is it possible to
    when keypress enter = send message

  12. fukemy commented on Jul 3, 2023

    @fukemy

    did you tried to implement Facebook messenger gradient?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions