mengapa Teks mengambil ruang penuh Tampilan, bukan hanya ruang untuk "Halo"?
Karena itu View
adalah wadah fleksibel dan secara default memiliki flexDirection: 'column'
dan alignItems: 'stretch'
, yang berarti bahwa anak-anaknya harus ditarik untuk mengisi lebarnya.
(Catatan, per docs , yang semua komponen di Bereaksi asli yang display: 'flex'
secara default dan bahwa display: 'inline'
tidak ada sama sekali cara ini, perilaku default dari. Text
Dalam View
di Bereaksi berbeda asli dari perilaku default span
dalam div
di web; dalam kasus terakhir, rentang tidak akan memenuhi lebar div
karena a span
adalah elemen inline secara default. Tidak ada konsep seperti itu di React Native.)
Bagaimana Teks dapat diapungkan / disejajarkan ke kanan?
The float
properti tidak eksis di Bereaksi asli, tetapi ada banyak pilihan yang tersedia untuk Anda (dengan perilaku yang sedikit berbeda) yang akan membiarkan Anda benar-menyelaraskan teks Anda. Inilah yang dapat saya pikirkan:
<View>
<Text style={{textAlign: 'right'}}>Hello, World!</Text>
</View>
(Pendekatan ini tidak mengubah fakta bahwa Text
mengisi seluruh lebar View
; hanya tepat menyelaraskan teks dalam Text
.)
<View>
<Text style={{alignSelf: 'flex-end'}}>Hello, World!</Text>
</View>
Ini menyusutkan Text
elemen ke ukuran yang diperlukan untuk menyimpan kontennya dan menempatkannya di ujung arah silang (arah horizontal, secara default) dari View
.
<View style={{alignItems: 'flex-end'}}>
<Text>Hello, World!</Text>
</View>
Ini setara dengan pengaturan alignSelf: 'flex-end'
pada semua View
anak.
<View style={{flexDirection: 'row', justifyContent: 'flex-end'}}>
<Text>Hello, World!</Text>
</View>
flexDirection: 'row'
menetapkan arah utama tata letak menjadi horizontal, bukan vertikal; justifyContent
hanya seperti alignItems
, tetapi mengontrol perataan dalam arah utama, bukan arah silang.
<View style={{flexDirection: 'row'}}>
<Text style={{marginLeft: 'auto'}}>Hello, World!</Text>
</View>
Pendekatan ini ditunjukkan, dalam konteks web dan CSS nyata, di https://stackoverflow.com/a/34063808/1709587 .
<View>
<Text style={{position: 'absolute', right: 0}}>Hello, World!</Text>
</View>
Seperti dalam CSS nyata, ini mengambil Text
"out of flow", yang berarti bahwa saudara kandungnya akan dapat tumpang tindih dan posisi vertikal akan berada di bagian atas View
secara default (meskipun Anda dapat secara eksplisit mengatur jarak dari atas View
menggunakan top
properti style).
Tentu saja, mana dari berbagai pendekatan yang ingin Anda gunakan - dan apakah pilihan di antara mereka bahkan penting - akan tergantung pada keadaan Anda yang sebenarnya.
justifyContent
,alignItems
,alignSelf
. Saya bertanya-tanya mana yang benar.