เหตุใดข้อความจึงใช้พื้นที่ทั้งหมดของมุมมองแทนที่จะเป็นพื้นที่สำหรับ "Hello"
เนื่องจากViewเป็นคอนเทนเนอร์แบบยืดหยุ่นและโดยค่าเริ่มต้นมีflexDirection: 'column'และalignItems: 'stretch'ซึ่งหมายความว่าลูกควรยืดออกเพื่อเติมความกว้าง
(หมายเหตุสำหรับเอกสารนั้นส่วนประกอบทั้งหมดใน React Native นั้นเป็นdisplay: 'flex'ค่าเริ่มต้นและdisplay: 'inline'ไม่มีอยู่จริงด้วยวิธีนี้พฤติกรรมเริ่มต้นของTextภายใน a Viewใน React Native จะแตกต่างจากพฤติกรรมเริ่มต้นของspanภายในdivเว็บ ในกรณีหลังการขยายจะไม่เติมความกว้างของdiva เนื่องจาก a spanเป็นองค์ประกอบอินไลน์ตามค่าเริ่มต้นไม่มีแนวคิดดังกล่าวใน React Native)
ข้อความสามารถลอย / จัดแนวไปทางขวาได้อย่างไร
floatคุณสมบัติไม่อยู่ใน React พื้นเมือง แต่มีโหลดของตัวเลือกที่มีให้คุณ (ที่มีพฤติกรรมแตกต่างกันเล็กน้อย) ที่จะช่วยให้คุณขวาจัดข้อความของคุณ นี่คือสิ่งที่ฉันคิดได้:
<View>
<Text style={{textAlign: 'right'}}>Hello, World!</Text>
</View>
(วิธีนี้จะไม่เปลี่ยนความจริงที่ว่าTextเติมเต็มความกว้างทั้งหมดของViewมันเพียงแค่จัดแนวข้อความภายในText)
<View>
<Text style={{alignSelf: 'flex-end'}}>Hello, World!</Text>
</View>
นี้ลดขนาดTextองค์ประกอบขนาดที่จำเป็นในการเก็บเนื้อหาและทำให้มันของมันในตอนท้ายของทิศทางข้าม (แนวนอนโดยค่าเริ่มต้น) Viewของ
<View style={{alignItems: 'flex-end'}}>
<Text>Hello, World!</Text>
</View>
สิ่งนี้เทียบเท่ากับการตั้งค่าลูกalignSelf: 'flex-end'ทุกViewคน
<View style={{flexDirection: 'row', justifyContent: 'flex-end'}}>
<Text>Hello, World!</Text>
</View>
flexDirection: 'row'กำหนดทิศทางหลักของเค้าโครงเป็นแนวนอนแทนที่จะเป็นแนวตั้ง justifyContentก็เหมือนalignItemsแต่ควบคุมการจัดตำแหน่งในทิศทางหลักแทนทิศทางข้าม
<View style={{flexDirection: 'row'}}>
<Text style={{marginLeft: 'auto'}}>Hello, World!</Text>
</View>
วิธีการนี้จะแสดงให้เห็นในบริบทของเว็บและ CSS จริงที่https://stackoverflow.com/a/34063808/1709587
<View>
<Text style={{position: 'absolute', right: 0}}>Hello, World!</Text>
</View>
เช่นเดียวกับ CSS จริงนี่ใช้Text"out of flow" ซึ่งหมายความว่าพี่น้องของมันจะสามารถซ้อนทับกันและตำแหน่งแนวตั้งจะอยู่ด้านบนสุดของการViewเริ่มต้น (แม้ว่าคุณสามารถกำหนดระยะห่างจากด้านบนของViewใช้topคุณสมบัติรูปแบบ)
ตามธรรมชาติซึ่งวิธีการต่าง ๆ เหล่านี้ที่คุณต้องการใช้ - และตัวเลือกระหว่างพวกเขามีความสำคัญหรือไม่นั้นขึ้นอยู่กับสถานการณ์ที่แน่นอนของคุณ
justifyContent, ,alignItemsalignSelfฉันสงสัยว่าสิ่งใดถูกต้อง