2016-05-24 6 views
7

Ho un TextInput con multiline impostato su true. faccio scorrere l'ingresso sul fuoco con:React Native: Come mantenere il testo multi-linea visibile sopra la tastiera

scrollResponder.scrollResponderScrollNativeHandleToKeyboard(
    React.findNodeHandle(this.refs.myInput), 
    0, 
    true 
); 

Tuttavia quando il TextInput multilinea espande il testo sarà nascosto sotto la tastiera. Voglio solo scorrere verso il basso quando il cursore/il testo corrente non è visibile. Quindi non posso semplicemente eseguire il codice qui sopra sul cambio di testo in quanto potrebbe scorrere la vista anche se il cursore corrente/testo corrente è visibile (come la modifica sulla prima riga).

C'è un modo per ottenere il cursore/la posizione del testo corrente sullo schermo? O c'è un altro modo per fare ciò che sto cercando?

Attualmente:

enter image description here

quello che sto cercando di realizzare: enter image description here

risposta

2

è possibile utilizzare il metodo di onLayout, fornito dalla View (che si estende testo). Restituisce le dimensioni della vista, che è possibile utilizzare per ricalcolare la posizione di scorrimento della propria scrollview.

+0

Non sembra essere chiamato quando il testo viene aggiunto a TextInput –

0

Il modo migliore per farlo sembra essere con la libreria reagire-native-tastiera-aware-scroll-view e utilizzare il metodo _scrollToInput e segui ciò che dicono i documenti.

enter image description here

L'unica cosa che ho dovuto cambiare è stato quello di chiamare "this.scroll.props.scrollToFocusedInput (reactNode)" invece di "this.scroll.scrollToFocusedInput (reactNode)" nella documentazione!

Problemi correlati