回答:
テキストが「Hello」のスペースだけでなく、ビューのスペース全体を占めるのはなぜですか?
そのためView
、フレックスコンテナであり、デフォルトでありflexDirection: 'column'
かつalignItems: 'stretch'
、その子はその幅を埋めるために伸ばしてしなければならないことを意味しています。
あたり(注、ドキュメントことを、すべてのコンポーネントがネイティブに反応するdisplay: 'flex'
デフォルトでは、それがdisplay: 'inline'
すべてでは存在しません。このように、デフォルトの動作。Text
内View
では、デフォルトの動作からネイティブ異なりリアクトspan
内div
ウェブ上に。後者の場合、a はデフォルトでインライン要素であるため、スパンはの幅を埋めません。ReactNativeにはそのような概念はありません。)div
span
テキストをどのようにしてフローティング/右揃えにすることができますか?
float
プロパティは、ネイティブに反応は存在しませんが、ある負荷、あなたのテキストを右揃えさせます(わずかに異なる振る舞いを持つ)使用できるオプションのは。ここに私が考えることができるものがあります:
textAlign: 'right'
上のText
要素<View>
<Text style={{textAlign: 'right'}}>Hello, World!</Text>
</View>
(このアプローチは、Text
がの幅全体を塗りつぶすという事実を変更しませんView
。それは、内のテキストを右揃えするだけText
です。)
alignSelf: 'flex-end'
上Text
<View>
<Text style={{alignSelf: 'flex-end'}}>Hello, World!</Text>
</View>
これにより、Text
要素がそのコンテンツを保持するために必要なサイズに縮小され、の交差方向(デフォルトでは水平方向)の端に配置されますView
。
alignItems: 'flex-end'
上View
<View style={{alignItems: 'flex-end'}}>
<Text>Hello, World!</Text>
</View>
これはalignSelf: 'flex-end'
、すべてView
のの子に設定することと同じです。
flexDirection: 'row'
及びjustifyContent: 'flex-end'
上View
<View style={{flexDirection: 'row', justifyContent: 'flex-end'}}>
<Text>Hello, World!</Text>
</View>
flexDirection: 'row'
レイアウトの主方向を垂直ではなく水平に設定します。justifyContent
はに似てalignItems
いますが、交差方向ではなく主方向の配置を制御します。
flexDirection: 'row'
上View
とmarginLeft: 'auto'
上Text
<View style={{flexDirection: 'row'}}>
<Text style={{marginLeft: 'auto'}}>Hello, World!</Text>
</View>
このアプローチは、https://stackoverflow.com/a/34063808/1709587で、Webおよび実際のCSSのコンテキストで示されています。
position: 'absolute'
とright: 0
上Text
:<View>
<Text style={{position: 'absolute', right: 0}}>Hello, World!</Text>
</View>
実際のCSSと同様に、これはText
「フローから外れる」ことを意味します。つまり、兄弟はそれと重なり合うことができ、その垂直位置はView
デフォルトで上部にあります(ただし、上部からの距離を明示的に設定できます)スタイルプロパティView
を使用top
)。
当然のことながら、これらのさまざまなアプローチのどれを使用したいか、そしてそれらの間の選択がまったく重要であるかどうかは、あなたの正確な状況に依存します。
<Text><Text>FLOAT TEXT</Text>multi line text here which wraps around float text
。または同じですが、次のような画像この:<View><Text><Image />multi line text which wrap around float image</Text>
。
<View style={{ flex: 1, flexDirection: 'row', justifyContent: 'flex-end' }}>
<Text>
Some Text
</Text>
</View>
flexDirection
:水平方向(行)または垂直方向(列)に移動する場合
justifyContent
:移動したい方向。
justifyContent
は方向を選択しません。メインのフレックス方向に沿って物をどのように配置し、間隔を空けるかについて、多くのオプションを提供します。
flexを使用して、ネイティブの反応でfloat:rightを実行できます。
<View style={{flex: 1, flexDirection: 'row'}}>
<View style={{width: 50, height: 50, backgroundColor: 'powderblue'}} />
<View style={{width: 50, height: 50, backgroundColor: 'skyblue'}} />
<View style={{width: 50, height: 50, backgroundColor: 'steelblue'}} />
</View>
詳細:https : //facebook.github.io/react-native/docs/flexbox.html#flex-direction
justifyContent
、alignItems
、alignSelf
。どちらが正しいのだろう。