mengapa Teks mengambil ruang penuh Tampilan, bukan hanya ruang untuk "Halo"?
Karena itu Viewadalah 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. TextDalam Viewdi Bereaksi berbeda asli dari perilaku default spandalam divdi web; dalam kasus terakhir, rentang tidak akan memenuhi lebar divkarena a spanadalah elemen inline secara default. Tidak ada konsep seperti itu di React Native.)
Bagaimana Teks dapat diapungkan / disejajarkan ke kanan?
The floatproperti 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 Textmengisi seluruh lebar View; hanya tepat menyelaraskan teks dalam Text.)
<View>
<Text style={{alignSelf: 'flex-end'}}>Hello, World!</Text>
</View>
Ini menyusutkan Textelemen 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 Viewanak.
<View style={{flexDirection: 'row', justifyContent: 'flex-end'}}>
<Text>Hello, World!</Text>
</View>
flexDirection: 'row'menetapkan arah utama tata letak menjadi horizontal, bukan vertikal; justifyContenthanya 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 Viewsecara default (meskipun Anda dapat secara eksplisit mengatur jarak dari atas Viewmenggunakan topproperti 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.