@@ -77,6 +77,7 @@ export default class extends PureComponent {
77
77
} ;
78
78
79
79
static defaultProps = {
80
+ topOffset : 0 ,
80
81
keyboardOffset : 40 ,
81
82
multilineInputStyle : null ,
82
83
useAnimatedScrollView : false ,
@@ -136,7 +137,9 @@ export default class extends PureComponent {
136
137
< View style = { styles . wrap } >
137
138
< ScrollComponent ref = { this . _onRef }
138
139
onFocus = { this . _onFocus }
139
- onBlur = { this . _onBlur } { ...otherProps } >
140
+ onBlur = { this . _onBlur } { ...otherProps }
141
+ // fix missing TextInput missing focus
142
+ keyboardShouldPersistTaps = 'handled' >
140
143
< View style = { styles . inScrollComponent } onStartShouldSetResponderCapture = { isIOS ? this . _onTouchStart : null } >
141
144
{ newChildren }
142
145
< View style = { styles . hidden }
@@ -323,7 +326,7 @@ export default class extends PureComponent {
323
326
324
327
_scrollToKeyboard = ( target , offset ) => {
325
328
const toKeyboardOffset = this . _topOffset + this . props . keyboardOffset - offset ;
326
- this . _root . scrollResponderScrollNativeHandleToKeyboard ( target , toKeyboardOffset , true ) ;
329
+ this . _root . scrollResponderScrollNativeHandleToKeyboard ( target , toKeyboardOffset , false ) ; // false to support multiline scroll when a new is entered
327
330
} ;
328
331
329
332
_onKeyboardShow = ( ) => {
@@ -368,7 +371,8 @@ export default class extends PureComponent {
368
371
// 原因可能是系统并未判定 TextInput 获取焦点,这可能是一个 bug
369
372
// 通常需要在 onStartShouldSetResponderCapture 返回 false 的情况下再点击一次 TextInput 才能恢复正常
370
373
// 所以这里手动再设置一次焦点
371
- focus ( target ) ;
374
+ // added keyboardShouldPersistTaps='handled' to scroll root instead - shoud fix this issue
375
+ // focus(target);
372
376
373
377
const inputInfo = this . _getInputInfo ( target ) ;
374
378
const multiline = getProps ( event . _targetInst ) . multiline ;
@@ -469,7 +473,8 @@ function focus(targetTag) {
469
473
}
470
474
471
475
function getTarget ( event ) {
472
- return event . target ||
476
+ return event . nativeEvent . target || // on >= 0.63 target tag can be found on nativeEvent not sure in other versions
477
+ event . target ||
473
478
event . currentTarget ||
474
479
event . _targetInst . stateNode . _nativeTag ; // for Android
475
480
}
0 commit comments