2017-02-16 22 views
0

Gibt es eine Möglichkeit, die Höhe des gesamten ScrollView-Elements in "React Native" zu erhalten?Wie erreicht man ScrollView mit vielen Kindelementen?

return (
    <View ref='container' style={[ styles.container, backgroundColor, {width: this.props.width} ]}> 
    <ScrollView ref='scroll' style={styles.scrollView}> --> what height with inner content? 
     {this._getTitle()} 
     <View style={styles.content}> 
     {items} 
     </View> 
     <View style={[styles.empty]} /> 
    </ScrollView> 
    </View> 
) 
+0

Sie über die Höhe zu fragen oder die Inhaltsgröße der Scroll-Ansicht? Die Höhe wird normalerweise festgelegt, und die Inhaltsgröße ändert sich, wenn untergeordnete Elemente zum Scroll-Container hinzugefügt werden. – Artal

+0

Ich möchte die Höhe von scrollView mit dem hinzugefügten Inhalt @Artal – Dmitry

+0

wieder erhalten, die Höhe ist festgelegt. Zum Beispiel: Ihre Scroll-Ansicht kann den gesamten Bildschirm einnehmen. Aber der Inhalt ist nicht der gleiche, kann niedriger sein, oder es kann höher sein (an dieser Stelle haben Sie einen Bildlauf des Inhalts, um alles zu erreichen). Bitte beachten Sie, wenn Sie die Höhe oder die Inhaltsgröße überprüfen möchten, sind dies zwei verschiedene Dinge. – Artal

Antwort

1

Ich weiß nicht, ob dies ein offiziell dokumentierte API ist, aber der Inhalt Größe kann immer mit dem nativen Scroll-View-Manager durchgeführt werden.

Fügen Sie die notwendigen Importe:

import ReactNative, {NativeModules} from 'react-native'; 
const ScrollViewManager = NativeModules.ScrollViewManager; 

Rufen Sie diese an einem Punkt in Ihrem Code, wo Sie bereits Zugang zum ref Scroll haben:

if(ScrollViewManager && ScrollViewManager.getContentSize) { 
    ScrollViewManager.getContentSize(ReactNative.findNodeHandle(this.scrollViewRef), (contentSize) => { 
    console.log(contentSize); 
    }) 
} 
+0

Danke, es hat geholfen – Dmitry