When there are few messages in the chat and the keyboard is opened the text messages bounce up and down.
Bouncing occurs when the height of the content inside the chat listview is lower than the height of the keyboard
We have implemented chat functionality using Telerik RadChat component. The problem is that the scroll functionality doesn't scroll fully to the bottom on IOS. It randomly stops somewhere in between. The same code runs perfectly on Android. Below I have attached an example code of our solution.
<telerikConversationalUI:RadChat
BackgroundColor="White"
Grid.Row="1"
x:Name="chat"
Author="{Binding Me}"
ItemsSource="{Binding Items}"
AutoScrollMode="Always"
ItemConverter="{StaticResource SimpleChatItemConverter}"
SendMessageCommand="{Binding NewMessageCommand}"
ItemTemplateSelector="{StaticResource CustomChatItemTemplateSelector}"
SendMessageButtonImage="ic_send_green">
</telerikConversationalUI:RadChat>
When there are more messages in Chat on initial load, it should scroll to show the most recent ones.
When the keyboard is displayed (after clicking into the entry), the messages listview is not resized,so the first messages are hidden and the user cannot scroll to them
If the ItemsSource of RadChat is bound to an ObservableCollection of chat items and the control is not visible, adding items to that collection crashes the app with the following:
Foundation.MonoTouchException: Objective-C exception thrown. Name: NSInternalInconsistencyException Reason: attempt to insert row 0 into section 0, but there are only 0 rows in section 0 after the update
The problem is reproduced sporadically on different platforms or devices. As a workaround you would need to add the same images to platform projects. Please find the images attached.
On iOS, need a way to dismiss the keyboard that doesn't require tapping the "Return" key, On Android, this is done with a tap gesture. On iOS this is usually done with a swipe down gesture.
When iOS 12.1 software keyboard is toggled, the entry bar doesn't shift to the right height.
In the attached gif, we can see the entry bar shifted up, but not high enough to stay above the keyboard. As a result, the keyboard blocks the entry bar