2016-06-19 5 views
2

Wie reagieren nativer Text und Image responsive?Wie reagiert nativer Text und Bild reagieren? kleinerer Text und Bild in kleinem Gerät, größerer Text und Bild in großem Gerät

Ich weiß nur die Flexbox kann Layout reagieren, aber scheint nicht in Text und Bild zutreffen.

e.g.Make meinen Text und Bild kleiner in iphone 4s, größer in iphone 6

Dank.

+0

können Sie einen Code bereitstellen? –

+0

Machen Sie einfach Text und Bild kleiner in iPhone 4s, größer in iPhone 6 –

Antwort

1

Sie können Flexbox verwenden, um Ihre Anwendung reaktionsfähig zu machen.

Zum Beispiel, sagen Sie eine Textzeile und ein Bild auf der gleichen Zeile angezeigt werden wollte:

class ResponsiveExample extends Component { 
    render() { 
     return (
      <View style={styles.container}> 
       <Text style={styles.text}> 
        Example of centered text 
       </Text> 
       <Image 
        resizeMode={"contain"} 
        style={styles.image} 
        source={{uri: "your image"}}/> 
      </View> 
     ); 
    } 
} 

const styles = StyleSheet.create({ 
    container: { 
     flex: 1, 
     flexDirection: "row", 
     alignItems: "center", 
     justifyContent: "space-between" 
    }, 
    text: { 
     marginLeft: 20, 
     flex: 1 
    }, 
    image: { 
     marginRight: 20, 
     height: 400, 
     flex: 3, 
    } 
}); 

nun den Text und Bild an die Bildschirmgröße relativ angezeigt. Das übliche Aufhängen hier ist, dass flexDirection standardmäßig column, die Dinge vertikal ausrichten wird. Sie können sehen, was passiert, wenn wir von Hochformat auf Querformat drehen:

enter image description here

Wie Sie sehen können, der Text und Bild auf die Änderung der Orientierung reagieren.

Für eine bessere Übersicht über die Flexbox beziehe ich mich gerne auf die folgende Anleitung: https://css-tricks.com/snippets/css/a-guide-to-flexbox/.

Denken Sie daran, dass ein flex-direction von column, auf einheitlichem Vorgaben reagieren so, wenn Sie horizontal Dinge gelegt möchten, müssen Sie dies explizit auf row müssen.

+0

Danke für Ihre Detail-Tutorial, aber ich möchte wissen, dass es keine Möglichkeit gibt, meinen Text zu machen und Bilder kleiner, wenn ich Iphone 4s, größer in Iphone 6 –

+0

ich aktualisiere das Beispiel, um zu zeigen, wie Sie die Bildgröße basierend auf dem Bildschirm ändern würde. Ändern der Schriftgröße wird ein wenig mehr Engineering erfordern: http://stackoverflow.com/questions/32947036/how-to-set-font-size-for-different-ios-devices-in-react-native –

+0

Dank a Menge!!! Es klappt! Eine weitere Sache, auf einer Seite, habe ich zu viele Texte mit zu vielen Schriftgrößen. Wie kann ich reagieren? Hast du ein Beispiel? –

0

Sie haben recht, wenn Sie an Flexbox denken, einfach Ihren Text und Ihr Bild innerhalb der Ansicht einbinden und diese Ansicht flexbox reaktionsfähig machen.

+0

, aber warum meine Bilder gleiche Größe in iPhone 4s und iphone 6 –

1

Ich denke, react-native-fit-image ist nützlich für Sie.

React Native Fit Image ermöglicht das Zeichnen reaktionsfähiger Bildkomponenten.

Sie können diese Komponente wie folgt verwenden.

<FitImage source={{ uri: 'http://facebook.github.io/react/img/logo_og.png' }} style={styles.fitImage} />