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
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