เหตุใดข้อความจึงใช้พื้นที่ทั้งหมดของมุมมองแทนที่จะเป็นพื้นที่สำหรับ "Hello"
เนื่องจากView
เป็นคอนเทนเนอร์แบบยืดหยุ่นและโดยค่าเริ่มต้นมีflexDirection: 'column'
และalignItems: 'stretch'
ซึ่งหมายความว่าลูกควรยืดออกเพื่อเติมความกว้าง
(หมายเหตุสำหรับเอกสารนั้นส่วนประกอบทั้งหมดใน React Native นั้นเป็นdisplay: 'flex'
ค่าเริ่มต้นและdisplay: 'inline'
ไม่มีอยู่จริงด้วยวิธีนี้พฤติกรรมเริ่มต้นของText
ภายใน a View
ใน React Native จะแตกต่างจากพฤติกรรมเริ่มต้นของspan
ภายในdiv
เว็บ ในกรณีหลังการขยายจะไม่เติมความกว้างของdiv
a เนื่องจาก 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
, ,alignItems
alignSelf
ฉันสงสัยว่าสิ่งใดถูกต้อง