2016-08-02 90 views

Odpowiedz

3

Zaprojektowałeś aplikację używając stałych szerokości i wysokości? Zdecydowanie powinieneś korzystać z możliwości flexbox i starać się unikać ustawień o ustalonych rozmiarach w jak największym stopniu. Za pomocą parametru flex property można zdefiniować, ile przestrzeni ma być odpowiednia dla innych, a inne właściwości na tej stronie można wykorzystać do elastycznego ułożenia elementów, które powinny dawać pożądane wyniki dla różnych rozmiarów ekranu.

Czasami możesz potrzebować również <ScrollView />.

Jeśli potrzebujesz stałych rozmiarów, możesz użyć Dimensions.get('window').

5

Musisz obliczyć rozmiary w sposób dynamiczny, opierając się na rozmiarze ekranu.

import { Dimensions, StyleSheet } from 'react-native' 

[...] 

const { width, height } = Dimensions.get('window') 

[...] 

const styles = StyleSheet.create({ 
    container: { 
     flex: 1. 
     flexDirection: 'column', 
    }, 
    myView: { 
     width: width * 0.8, // 80% of screen's width 
     height: height * 0.2 // 20% of screen's height 
    } 
}) 

Jeśli używasz TabbarIOS pamiętać, że Dimensions.get('window') daje wysokość całego ekranu w , oznacza to, że trzeba będzie wziąć w uwagę, że umieszczenie zakładek ma stałej wysokości 56. Tak na przykład przy stosowaniu TabbarIOS:

const WIDTH = Dimensions.get('window').width, 
     HEIGHT = Dimensions.get('window').height - 56 

Następnie za pomocą wysokość i szerokość, jak powyżej.

+0

To nie działa dla wielu urządzeń (to nie jest faktyczne) –

+0

Gdzie widziałeś, że to nie działa? Wydaje się, że działa dobrze dla mnie (przynajmniej na Androidzie) – Philberg