Voglio mettere il contenuto (più immagini disposte verticalmente) in un React Native ScrollView (solo iOS per ora, Android verrà dopo) che è più grande dello schermo del telefono, e iniziare a zoomare in modo che sia tutto visibile allo stesso tempo.Come rendere lo zoom iniziale di React Native's ScrollView non essere 1?
ci sono dei buoni esempi di utilizzo ScrollView.scrollResponderZoomTo in una chiamata componentDidMount che riduce lo zoom per adattare i contenuti sullo schermo, qualcosa come
<ScrollView
style={{width: 500, height: 1000}}
// + whatever other properties make this work required way
>
<View style={{width: 2000, height: 5000}}>
<Image style={{width: 2000, height: 2000}} source={.....}/>
<Image style={{width: 2000, height: 3000}} source={.....}/>
</View>
</ScrollView>
Ho provato a impostare la proprietà 'zoomScale', ma che sembra essere ignorato e usa sempre il valore 1.
In base a questo numero (https://github.com/facebook/react-native/issues/2176) esiste una funzione scrollResponderZoomTo che può essere utilizzata, ma quando provo ad usarlo, sembra che non importa quali valori gli diamo zoom fuori troppo lontano e fuori dal centro.
Il campione applicazione F8 dispone di un modulo ZoomableImage (https://github.com/fbsamples/f8app/blob/b5df451259897d1838933f01ad4596784325c2ad/js/tabs/maps/ZoomableImage.js), che utilizza lo stile Image.resizeMode.contain per fare un'immagine adatta allo schermo, ma che perde la qualità dell'immagine, in modo che quando si ingrandisce diventa sfocata.
Posso confermare che l'impostazione della proprietà zoomScale alla dichiarazione non ha alcun effetto. –
La funzione scrollResponderZoomTo si comporta come "indipendentemente dal valore che attribuisco, ingrandisce troppo lontano e non al centro" anche nel mio caso. –
Shane, vedo che sei elencato come ingegnere su Facebook? È possibile chiedere al proprio team/gruppo/mailing list interno di React Native il modo corretto per farlo? (E se lo facessi, mi piacerebbe molto se tu potessi condividere la risposta esternamente qui, dato che ho lo stesso identico problema/interesse!) –