2016-05-15 5 views
0

Guten Tag,Behältergröße nicht korrekt aus RCTUIManager.measure gemeldet und onLayout-

Ich versuche programmatisch eine Scroll blättern, die einen Blick Container enthält, die größer ist als die Scroll in wahre Größe ist. Der ScrollView muss jedoch den Container in einer bestimmten Größe abschneiden. Wenn also die ScrollView-Höhe 600 Pixel und die Containergröße 1000 Pixel beträgt, muss ich auf die 1000 Pixel zugreifen, damit ich flüssig programmgesteuert blättern kann. Dieses Problem wurde auf GitHub für einen anderen Entwickler hier gelöst, aber das scheint nicht für mich zu arbeiten. Hier ist, was ich habe versucht:

<ScrollView> <View onLayout={(event) => {console.log(event.nativeEvent.layout);}> ... </View> </ScrollView>

Versuch 1: Setzen Sie einen onLayout- Rückruf sowohl in der Scrollview und die Innenansicht und verwenden Sie die Layouthöhe Innerviews. Ergebnis: Das hat nicht funktioniert sowohl die Scrollview und Innenansicht berichten eine Höhe von 600

Versuch 2: Verweis auf die Scroll speichern und dann wie so RCTUIManager die Maßfunktion zu einem späteren Zeitpunkt nennen:

RCTUIManager.measure(this.refs.scrollView.getInnerViewNode(), (...data)=>{console.log(data)});

Ergebnis: Dies hat auch nicht funktioniert, der innerViewNode meldet erneut eine Containerhöhe (4. Parameter in Daten) von 600.

Hat jemand eine andere Lösung, um die Containerhöhe zu erhalten? Ich setze definitiv eine 1000 px Ansicht in eine 600ish px Bildlaufansicht und wenn ich programmgesteuert 100px sende, kann ich sehen, dass der Inhalt tatsächlich größer ist als der ScrollView-Wrapper.

Danke für jede Hilfe, die jemand zur Verfügung stellen kann!

Antwort

0

Hier ist eine Lösung, die ich zur Arbeit gefunden: für den Boden

<ScrollView> 
    {{...components of variable length...}} 
    <View key="bottomMarker" onLayout={() => {console.log(event.nativeEvent.layout.y)}}></View> 
</ScrollView> 

Durch die Verwendung der Ansicht als Marker, können Sie die Position des Bodens der Scroll-Ansicht finden.

Verwandte Themen