tại sao Văn bản chiếm toàn bộ không gian của Chế độ xem, thay vì chỉ là không gian cho "Xin chào"?
Bởi vì Viewlà một thùng chứa flex và theo mặc định có flexDirection: 'column'và alignItems: 'stretch', điều đó có nghĩa là các phần tử con của nó phải được kéo dài ra để lấp đầy chiều rộng của nó.
(Lưu ý, theo các tài liệu , tất cả các thành phần trong React Native đều display: 'flex'mặc định và display: 'inline'hoàn toàn không tồn tại. Theo cách này, hành vi mặc định của a Texttrong a ViewReact Native khác với hành vi mặc định của spanbên trong divweb; trong trường hợp sau, khoảng thời gian sẽ không lấp đầy chiều rộng của divbởi vì a spanlà phần tử nội tuyến theo mặc định. Không có khái niệm nào như vậy trong React Native.)
Làm thế nào để Văn bản có thể được thả nổi / căn chỉnh sang phải?
Các floatbất động sản không tồn tại trong Phản ứng Native, nhưng có tải các tùy chọn có sẵn cho bạn (với hành vi hơi khác nhau) mà sẽ cho phép bạn phải sắp xếp văn bản của bạn. Đây là những cái tôi có thể nghĩ ra:
<View>
<Text style={{textAlign: 'right'}}>Hello, World!</Text>
</View>
(Cách tiếp cận này không thay đổi thực tế là Textlấp đầy toàn bộ chiều rộng của Viewnó; nó chỉ đúng căn chỉnh văn bản trong Text.)
<View>
<Text style={{alignSelf: 'flex-end'}}>Hello, World!</Text>
</View>
Điều này thu nhỏ Textphần tử theo kích thước cần thiết để giữ nội dung của nó và đặt nó ở cuối hướng chéo (hướng ngang, theo mặc định) của View.
<View style={{alignItems: 'flex-end'}}>
<Text>Hello, World!</Text>
</View>
Điều này tương đương với việc thiết lập alignSelf: 'flex-end'cho tất cả Viewtrẻ em.
<View style={{flexDirection: 'row', justifyContent: 'flex-end'}}>
<Text>Hello, World!</Text>
</View>
flexDirection: 'row'đặt hướng chính của bố cục là ngang thay vì dọc; justifyContentcũng giống như alignItems, nhưng điều khiển căn chỉnh theo hướng chính thay vì hướng chéo.
<View style={{flexDirection: 'row'}}>
<Text style={{marginLeft: 'auto'}}>Hello, World!</Text>
</View>
Cách tiếp cận này được thể hiện, trong ngữ cảnh của web và CSS thực, tại https://stackoverflow.com/a/34063808/1709587 .
<View>
<Text style={{position: 'absolute', right: 0}}>Hello, World!</Text>
</View>
Giống như trong CSS thực, điều này sẽ Text"hết dòng", nghĩa là anh chị em của nó sẽ có thể chồng lên nó và vị trí thẳng đứng của nó sẽ ở trên cùng Viewtheo mặc định (mặc dù bạn có thể đặt khoảng cách rõ ràng từ đỉnh của Viewsử dụng toptài sản phong cách).
Đương nhiên, phương pháp nào bạn muốn sử dụng - và liệu sự lựa chọn giữa chúng có quan trọng hay không - sẽ phụ thuộc vào hoàn cảnh chính xác của bạn.
justifyContent,alignItems,alignSelf. Tôi tự hỏi cái nào đúng