2016-03-24 5 views
7

Ponieważ w implementacji Flexbox przez RN nie ma pozycji "align-items: baseline", w jaki sposób mogę wyrównać linie bazowe dwóch elementów tekstowych w poziomie?Jak symulować "wyrównanie elementów: linia bazowa" w React Native?

enter image description here

JSX:

<View style={styles.numberAndPercent}> 
    <Text style={styles.number}>6.80</Text> 
    <Text style={styles.percent}>%</Text> 
</View> 
+0

Nie mogę pojąć, jaki efekt cię "o tym rozmawiamy. Czy możesz wyjaśnić, co konkretnie chcesz tutaj osiągnąć? –

Odpowiedz

4

React Native obsługuje teraz alignItems: 'baseline', więc następujące powinny działać:

numberAndPercent: { 
    flexDirection: 'row', 
    alignItems: 'baseline', 
} 

Więcej informacji: https://facebook.github.io/react-native/docs/flexbox.html

+0

Dzięki za zawiadomienie! Nie patrz na React Native od dłuższego czasu, tylko po to, aby się przekonać, że wiele trudnych problemów zostało rozwiązanych (to i tak jak tekst ellipsis)! – irrigator

0

Spróbuj:

{ 
    numberAndPercent: { 
    flex: 1, 
    justifyContent: 'flex-end' 
    } 
} 

A dodatkowo:

{ 
    number: { 
    alignSelf: 'flex-end' 
    }, 

    percent: { 
    alignSelf: 'flex-end' 
    } 
} 
0

Obecnie React Native obsługuje każdą własność schematu flexbox wyjątkiem linia bazowa. Aby obejść ten problem, możesz ustawić wysokość tak, aby była taka sama jak rozmiar czcionki.

 
textBig: { 
    fontSize: 40, 
    height: 40, 
} 
textSmall: { 
    fontSize: 18, 
    height: 18, 
} 

To nie jest idealne rozwiązanie, ale na razie wykonuje swoją pracę.

0
<Text style={styles.numberAndPercent}> 
    <Text style={styles.number}>6.80</Text> 
    <Text style={styles.percent}>%</Text> 
</Text> 
+0

Tylko po angielsku, proszę. – Rob

-1

Spróbuj

{ fontSize: 40, lineHeight: 40 * 0.75, paddingTop: 40 - (35 * 0.75), // <-- Add this },