2016-03-16 1 views

Répondre

0

Vous devez utiliser <ScrollView> au lieu de <View> afin d'utiliser cette méthode.

La méthode clé est scrollResponderScrollNativeHandleToKeyboard(refToElement, scrollHeight, preventNegativeOffset) (sons cool, non;))

Je:

<TextInput ref='ccName' onFocus={(() => this.onFieldFocus('ccName'))} /> 

où la fonction ressemble:

onFieldFocus(fieldName) { 
    this.setTimeout(() => { 
    let scrollResponder = this.refs.scrollView.getScrollResponder() 
    scrollResponder.scrollResponderScrollNativeHandleToKeyboard(
     React.findNodeHandle(this.refs[fieldName]), 200, true 
    ) 
    }, 125) 
} 
+0

Merci, mais comme vous pouvez le voir dans mon exemple, j'utiliser ListView. – Maksim

+0

Envelopper le ListView dans ScrollView alors? – zvona

+0

Pouvez-vous partager un exemple sur rnplay.org, s'il vous plaît? – Maksim

0

Semble this thread est ce que vous êtes à la recherche de.

TL; DR: see this stackoverflow question

+0

Cela ne fonctionne pas avec ListView. – Maksim

+0

'listView.getScrollResponder(). ScrollTo();' ne fonctionne pas? (listView est une référence à l'élément ListView que vous avez) –

+0

Pouvez-vous partager un exemple facile dans rnplay.org, s'il vous plaît? – Maksim