Layout di app comuni di React comuni Pagina di accesso

In questa serie, imparerai come utilizzare React Native per creare layout di pagina comunemente usati nelle app mobili. I layout che creerai non saranno funzionali, ma l'obiettivo principale di questa serie è quello di sporcarti le mani nel disporre i contenuti nelle tue app React Native. 

Se sei nuovo nello sviluppo di app o stili React Native in generale, consulta il mio precedente tutorial:

Per seguire questa serie, ti sfido a provare a ricreare ogni schermo da solo, prima di leggere le mie istruzioni passo passo nel tutorial. Non trarrai molto beneficio da questo tutorial solo leggendolo! Prova prima prima di cercare le risposte qui. Se riesci a renderlo simile alla schermata originale, confronta la tua implementazione con la mia. Quindi decidi tu stesso quale è meglio!

In questa prima parte della serie, creerai la seguente pagina di accesso:

La pagina di accesso è comunemente utilizzata come pagina iniziale per le app che richiedono agli utenti di avere un account.

Ecco alcuni esempi di questo tipo di layout in natura:

Impostazione del progetto

Il primo passo, ovviamente, è quello di creare un nuovo progetto React Native:

reagire-native init react-native-common-screens

Una volta impostato il progetto, apri il index.android.js file e sostituire il codice predefinito con il seguente:

import React, Component da 'react'; importare AppRegistry da 'react-native'; import Login da './src/pages/Login'; Esporta la classe predefinita ReactNativeCommonScreens estende Component render () return (  );  AppRegistry.registerComponent ('ReactNativeCommonScreens', () => ReactNativeCommonScreens);

Creare un src / pagine cartella e creare a Login.js file al suo interno.

Avrai anche bisogno del reagiscono-nativo-vector-icons pacchetto. Questo è specificamente utilizzato per rendere l'icona di Facebook per il pulsante di accesso di Facebook.

npm install --save react-native-vector-icons

Apri il Android / app / build.gradle file e aggiungi un riferimento al pacchetto:

dipendenze // resto delle dipendenze sono qui nel progetto di compilazione più in alto (': react-native-vector-icons') // aggiungi questo

Fai lo stesso con il Android / settings.gradle file aggiungendo quanto segue in basso:

include ': react-native-vector-icons' project (': react-native-vector-icons'). projectDir = new File (rootProject.projectDir, '... / node_modules / react-native-vector-icons / android')

Aperto Android / app / src / main / java / com / reagire-native-comuni-schermi / MainApplication.java e importa il pacchetto:

import java.util.Arrays; import java.util.List; import com.oblador.vectoricons.VectorIconsPackage; //Aggiungi questo

Infine, inizializza il pacchetto: 

@Override Elenco protetto getPackages () return Arrays.asList (new MainReactPackage (), nuovo VectorIconsPackage () // aggiungi questo); 

Creazione della pagina di accesso

Ok, ora che hai provato a codificare il layout da solo (non barare, giusto?), Ti mostrerò come ho realizzato la mia implementazione. Apri il src / pages / Login.js file e importa le cose che ti serviranno:

import React, Component da 'react'; import StyleSheet, Text, View, TextInput, ScrollView da 'react-native'; icona di importazione da 'react-native-vector-icons / FontAwesome';

A parte i componenti di React predefiniti e il reagiscono-nativo-vector-icons pacchetto, dovrai includere anche tre componenti personalizzati:

contenitore di importazione da '... / components / Container'; pulsante di importazione da '... / components / Button'; etichetta di importazione da '... / components / Label';

Il primo è il Contenitore (src / componenti / Container.js), il cui compito è quello di aggiungere un margine inferiore a tutto ciò che avvolge. Sembra banale, e sì, puoi davvero usarlo vista e aggiungi gli stessi stili ogni volta che vuoi usarlo. Il vantaggio che offre è che non è necessario applicare gli stessi stili a a vista più volte e consente inoltre di riutilizzare il componente ogni volta che è necessario aggiungere un margine inferiore a qualcosa.

import React, Component da 'react'; import StyleSheet, View da 'react-native'; const Container = (props) => return (  props.children  );  const styles = StyleSheet.create (labelContainer: marginBottom: 20); esportare il contenitore predefinito;

Il Pulsante componente (src / componenti / Button.js), come suggerisce il nome, è usato per creare pulsanti. Se presente, sputa ogni componente figlio aggiunto al suo interno. Altrimenti, emette a Testo componente che mostra il testo all'interno del pulsante. Viene aggiunto anche uno stile predefinito, ma non verrà utilizzato se noDefaultStyles è presente nei puntelli. Anche gli stili di pulsanti unici trasmessi dagli oggetti di scena sono facoltativi.

import React, Component da 'react'; import StyleSheet, Text, TouchableHighlight, da 'react-native'; const Button = (props) => function getContent () if (props.children) return props.children;  ritorno  Props.label  ritorno (  getContent ()  );  const styles = StyleSheet.create (button: alignItems: 'center', justifyContent: 'center', padding: 20,); pulsante predefinito di esportazione;

Infine, c'è il Etichetta componente (src / componenti / Label.js), che è fondamentalmente solo un Testo componente con alcuni stili predefiniti.

import React, Component da 'react'; import StyleSheet, Text, da 'react-native'; const Label = (props) => return (   Props.text  );  const styles = StyleSheet.create (textLabel: fontSize: 20, fontWeight: 'bold', fontFamily: 'Verdana', marginBottom: 10, color: '# 595856'); esportare l'etichetta predefinita;

Ora puoi passare alla pagina di accesso effettiva. Dentro il render () metodo, avvolgi tutto in a ScrollView componente. Questo è molto importante se vuoi che la tua app sia in grado di soddisfare tutti i tipi di dimensioni del dispositivo e gli orientamenti dello schermo. 

Il più delle volte, non importa quanto piccola altezza pensi che il tuo contenuto sta per consumare, ci sarà sempre un dispositivo che non sarà in grado di visualizzarlo completamente. Quindi la necessità di barre di scorrimento per lo scorrimento del contenuto.

Esporta la classe predefinita Login estende Component render () return ( ...  ); 

Successivamente, inizializza gli stili:

const styles = StyleSheet.create ();

Applicare i seguenti stili al ScrollViewflexDirection è facoltativo, ma è una buona pratica definirlo esplicitamente in modo che i futuri sviluppatori possano sapere esattamente come viene presentato il contenuto principale dell'app semplicemente dando uno sguardo al codice.

scroll: backgroundColor: '# E1D7D8', padding: 30, flexDirection: 'column',

Guardando lo screenshot di prima, il primo pezzo di contenuto che vuoi aggiungere è quello in alto, e quello è il pulsante della password dimenticata. Si noti che il onPress oggetti di scena viene fornito perché il underlayColor non verrà effettivamente applicato se non viene fornita alcuna funzione per quando viene premuto il pulsante.

 

Gli stili usati per questo sono piuttosto auto-esplicativi tranne per il alignSelf: 'flex-end'. Questo dice a React Native di posizionare l'elemento alla fine della linea corrente. alignSelf è l'equivalente di alignItems per specificare l'allineamento dell'elemento stesso e non i suoi figli. utilizzando flex-end ti consente di ottenere un effetto simile a quello di float: giusto in CSS.

label: color: '# 0d8898', fontSize: 20, alignRight: alignSelf: 'flex-end',

Successivamente ci sono i due campi di testo insieme alle loro etichette.

   

A questo punto, la pagina dovrebbe ora apparire come questa:

Ecco lo stile per il l'immissione di testo

textInput: height: 80, fontSize: 30, backgroundColor: '#FFF',

Ora potresti aver iniziato a notare perché il Contenitore componente è importante. Ti permette di incapsulare gli stili di default in modo che non finiscano per ripeterli in ogni file. Questo è un principio di base di React: devi sempre cercare il riutilizzo dei componenti ogni volta che vedi un'opportunità.

Il pulsante per accedere a Facebook è leggermente diverso dai pulsanti creati in precedenza. Questa volta ha del contenuto al suo interno che visualizza un'icona insieme ad un testo. Questi sono aggiunti al posto di etichetta oggetti di scena al fine di personalizzare ulteriormente il contenuto del pulsante.

  

Una volta che è stato aggiunto, la pagina dovrebbe ora assomigliare a questa:

Aggiungi gli stili per il pulsante di accesso di Facebook:

transparentButton: marginTop: 30, borderColor: '# 3B5699', borderWidth: 2, buttonBlueText: fontSize: 20, color: '# 3B5699', buttonBigText: fontSize: 20, fontWeight: 'bold', inline: flexDirection: 'row',

Non c'è davvero nulla che valga la pena di notare qui tranne styles.inline, che viene usato come classe helper per raggruppare orizzontalmente tutti gli elementi al suo interno. Questo raggiunge un effetto simile a quello dell'uso  in HTML per avvolgere il testo che si desidera visualizzare in linea. In CSS, questo può essere ottenuto usando entrambi display: in linea o display: blocco in linea

Gli ultimi elementi su questo schermo sono i Registrati e Annulla pulsanti. Hanno bisogno di più spazio sopra di loro rispetto agli altri elementi, quindi è meglio avvolgerli in un contenitore (footer) e applicare marginTop ad esso. Questo ha più senso che dichiarare un nuovo stile solo per questi pulsanti.

  

Infine, aggiungi lo stile per il Registrati e Annulla pulsanti:

buttonWhiteText: fontSize: 20, color: '#FFF',, buttonBlackText: fontSize: 20, color: '# 595856', primaryButton: backgroundColor: '# 34A853', footer: marginTop: 100

Infine, non dimenticare di definire il codice che verrà eseguito quando si preme uno dei pulsanti!

premi () // esegui qualsiasi codice qui

Conclusione

Questo è tutto! In questo tutorial hai creato con successo una pagina di accesso usando la tua conoscenza Flexbox. Lungo il percorso, hai anche imparato a usare una libreria di terze parti chiamata React Native Vector Icons per aggiungere facilmente icone nella tua app. In che modo la mia soluzione è stata paragonata alla tua? Fateci sapere nel forum di discussione qui sotto.

Nel prossimo tutorial di questa serie, imparerai come creare una schermata del calendario. Nel frattempo, dai un'occhiata ad alcuni dei nostri altri tutorial su React Native e Flexbox.

  • Un'introduzione al modulo CSS Flexbox

    Il CSS, nonostante il suo livello di competenza percepito relativamente basso, sembra sempre avere un killer nella manica. Ricorda come le query multimediali hanno reso reattivo ...
    Umar Hansa
    HTML e CSS
  • Inizia con React Native Layouts

    In questo tutorial, imparerai come disporre le app React Native e come implementare i layout comunemente usati nelle app.
    Wern Ancheta
    Reagire Nativo
  • Costruisci un'app social con React Native

    React Native, creato da Facebook, ti ​​consente di scrivere app mobili native in JavaScript moderno. Le app native di React verranno trasformate in visualizzazioni native specifiche ...
    Markus Mühlberger
    Reagire Nativo
  • Come costruire una navigazione a strisce con Flexbox

    Stai cercando di migliorare la tua conoscenza della flexbox e allo stesso tempo impara come costruire facilmente un layout attraente e unico? Se è così, assicurati di leggere questo ...
    George Martsoukos
    Flexbox
  • Animare la tua app nativa React

    Le animazioni possono dare vita alla tua app e rendere le tue UI più intuitive. In questo tutorial imparerai come implementare diversi tipi di animazioni in ...
    Wern Ancheta
    Reagire Nativo
  • Come creare un'applicazione Face Detection con React Native

    Sei uno sviluppatore di app ibrido che desidera includere il rilevamento del volto nella tua app, ma non hai idea di dove iniziare? Come inizio, potresti leggere An ...
    Wern Ancheta
    Reagire Nativo