2015-05-13 15 views
8

triangleCSS Triangoli in Reagire Native

Sto lavorando su un'applicazione che utilizza i triangoli che si sovrappongono altri contenitori/div. Che era risolto con i CSS prima:

.triangle:after { 
    content: ""; 
    display: block; 
    position: absolute; 
    top: 15px; 
    left: -15px; 
    width: 0; 
    border-width: 0px 0px 15px 15px; 
    border-style: solid; 
} 

ma che non funziona in Reagire più. Qual è la soluzione migliore per andare qui?

+0

Che aspetto ha il DOM generato? Sembra che dovrebbe funzionare ancora. –

risposta

0

Il modo migliore per farlo è creare un componente <Image> e posizionarlo assolutamente, in modo simile a come si farebbe con un triangolo CSS puro. Se il triangolo ha un colore piatto, al contrario di una sfumatura o di un altro motivo, puoi impostarne il colore usando la proprietà di stile tintColor.

Esempio:

<Image 
    source={require('image!triangle')} 
    style={{tintColor: '#008080'}} 
/> 
+0

Quindi ho appena creato un'immagine reale con un triangolo e la tinta con il colore che mi serve? – Patrick

+1

Sì, dovrebbe farlo. Aggiornamento – ide

13

E 'ancora possibile disegnare triangoli in Reagire nativo utilizzando il trucco CSS. ho scritto una classe per incapsulare questo: https://github.com/Jpoliachik/react-native-triangle

Se vuoi scrivere da soli, ho usato questo strumento: http://apps.eky.hk/css-triangle-generator/ per generare il triangolo che volevo e modificare gli stili di reagire sintassi nativa.

Ad esempio, un triangolo isoscele 90x90 rivolta verso l'alto in CSS legge:

width: 0; 
height: 0; 
border-style: solid; 
border-width: 0 45px 90px 45px; 
border-color: transparent transparent #007bff transparent; 

Ma in Reagire Native stili sarebbero:

triangle: { 
    width: 0, 
    height: 0, 
    backgroundColor: 'transparent', 
    borderStyle: 'solid', 
    borderTopWidth: 0, 
    borderRightWidth: 45, 
    borderBottomWidth: 90, 
    borderLeftWidth: 45, 
    borderTopColor: 'transparent', 
    borderRightColor: 'transparent', 
    borderBottomColor: 'red', 
    borderLeftColor: 'transparent', 
    }, 
+1

: attualmente funziona solo per iOS. Anche le correzioni sono in corso per il supporto Android. https://github.com/facebook/react-native/issues/5411 – Jpoliachik

+2

Un altro aggiornamento: funziona anche Android. – Jpoliachik

Problemi correlati