          {
              subview = view;
          }
-@@ -149,7 +164,7 @@ typedef NS_ENUM(NSUInteger, KeyboardTrackingScrollBehavior) {
+@@ -149,7 +166,7 @@ typedef NS_ENUM(NSUInteger, KeyboardTrackingScrollBehavior) {
          if(!_newClass) return;
          
          Method method = class_getInstanceMethod([UIResponder class], @selector(inputAccessoryView));

 - (void)setupTextView:(UITextView*)textView
 {
     if (textView != nil)
@@ -343,7 +387,7 @@ typedef NS_ENUM(NSUInteger, KeyboardTrackingScrollBehavior) {
 
 - (void)observingInputAccessoryViewKeyboardWillDisappear:(ObservingInputAccessoryView *)observingInputAccessoryView
 {
-    _bottomViewHeight = kBottomViewHeight;
+    _bottomViewHeight = [self getBottomSafeArea];
     [self updateBottomViewFrame];
 }
 
@@ -388,32 +432,42 @@ typedef NS_ENUM(NSUInteger, KeyboardTrackingScrollBehavior) {
 {
     if(self.scrollViewToManage != nil)
     {
+        if (!_initialOffsetIsSet) {
+            self.initialOffsetY = self.scrollViewToManage.contentOffset.y;

 }
 
 - (CGFloat)getKeyboardHeight
@@ -634,6 +724,13 @@ RCT_REMAP_VIEW_PROPERTY(requiresSameParentToManageScrollView, requiresSameParent
 RCT_REMAP_VIEW_PROPERTY(addBottomView, addBottomView, BOOL)
 RCT_REMAP_VIEW_PROPERTY(scrollToFocusedInput, scrollToFocusedInput, BOOL)
 RCT_REMAP_VIEW_PROPERTY(allowHitsOutsideBounds, allowHitsOutsideBounds, BOOL)
