2017-12-13 7 views
0

2つの同様のコンポーネントがレンダリングされました。各コンポーネントにはアイコンとテキストがあり、それぞれが重なってはいけません。私のスタイリングに何が問題なの?ここでこれらの反応成分が重なっているのはなぜですか?

import Icon from "react-native-elements/src/icons/Icon"; 

<TouchableOpacity onPress={_ => playSound(audio)} style={{ 
    flexDirection: 'row', 
    flexGrow:1, 
    flex: 1 
}}> 
    <View> 
    <Icon name="volume-up" color={PRIMARY_BG} size={24}/> 
    </View> 
    <View> 
    <Text style={{ 
     flexGrow: 1, 
     fontSize: 8, 
     backgroundColor: GRAY 
    }}> 
    [{locale}]{this.props.pronunciation[locale][0]} 
    </Text> 
    </View> 
</TouchableOpacity> 

は出力です:

inline

親コンテナスタイル

headItemContent: { 
    flex: 3, 
    flexDirection: 'row', 
    justifyContent: 'space-between' 
}, 
+0

私はそれがこれらの2つの親指のスタイルだと思う。私は彼らがうまく見えるミニプロジェクトを作った。 – Val

+0

親のスタイルを更新しました。それはまた大丈夫でしょう – newBike

+0

イメージはあったのですか?テキストの下に? – ShaneG

答えて

0

私はあなたのイメージがあることを意味している場所がわからないのですが、問題は、あなたが持っているflexDirectionですセット。 touchableOpacityにflexDirectionカラムであるべきである:あなたが行であるので

flexDirection: "column" 

、画像及びテキストが互いに横にレンダリングされます。十分なスペースがないので、ラップオーバーしています。したがって、flexDirectionを変更すると、それが修正されるはずです。

編集 - またはあなたのイメージやテキストにフレックスを追加します。

<View style={{flex: 1}}> 
    <Icon name="volume-up" color={PRIMARY_BG} size={24}/> 
</View> 
<View style={{flex: 1}}> 
    <Text style={{ 
    flexGrow: 1, 
    fontSize: 8, 
    backgroundColor: GRAY 
    }}> 
    [{locale}]{this.props.pronunciation[locale][0]} 
    </Text> 
</View> 

ことができますなら、私を知ってみましょう!

+0

もちろん、私はそれらを並んで並べて欲しいです:) – newBike

+0

@newBike画像とあなたのテキストに「フレックス:1」を追加することがあります。 – ShaneG