Tôi muốn sử dụng thành phần Picker trong ứng dụng React Native của mình, nhưng nó chiếm quá nhiều chiều cao của màn hình. Có cách nào để tự giới hạn trình chọn để chỉ hiển thị, giả sử, hai mục cùng một lúc, sau đó có thể cuộn trong phạm vi không?Có cách nào để tạo thành phần Picker cho React Native và làm cho chiều cao của nó nhỏ hơn không?
9
A
Trả lời
-2
gì về điều này từ NativeBase:
import React, { Component } from 'react';
import { Container, Content, Picker } from 'native-base';
const Item = Picker.Item;
export default class PickerExample extends Component {
constructor(props) {
super(props);
this.state = {
selectedItem: undefined,
selected1: 'key1',
results: {
items: []
}
}
}
onValueChange (value: string) {
this.setState({
selected1 : value
});
}
render() {
return (
<Container>
<Content>
<Picker
iosHeader="Select one"
mode="dropdown"
selectedValue={this.state.selected1}
onValueChange={this.onValueChange.bind(this)}>
<Item label="Wallet" value="key0" />
<Item label="ATM Card" value="key1" />
<Item label="Credit Card" value="key2" />
<Item label="Debit Card" value="key3" />
</Picker>
</Content>
</Container>
);
}
}
4
Từ chơi đùa với các phong cách, nó trông giống như một phần quan trọng nhất là phải thiết lập các itemStyle
prop và xác định giá trị height
đó. Bạn cũng có thể muốn tự tạo kiểu cho thành phần Picker
và đặt giá trị height
tương tự cho kết quả tìm kiếm tốt nhất, nhưng bạn không cần cần để thực hiện điều đó.
Về cố gắng để hiển thị hai hàng:
- Hiển thị một mặt hàng có vẻ là khoảng độ cao 44.
- Bạn có thể không thực sự hiển thị chính xác hai mục trong iOS vì thế các thành phần có nguồn gốc Picker được thiết kế. Nó sẽ hiển thị các phần của những gì ở trên và bên dưới giá trị hiện được chọn. Vì vậy, tốt nhất bạn có thể sắp xếp hiển thị một nửa/một nửa các giá trị đó. Bạn sẽ phải chơi xung quanh với chiều cao để tìm một cái gì đó phù hợp với bạn.
Minimal Ví dụ:
<Picker style={{width: 200, height: 44}} itemStyle={{height: 44}}>
<Picker.Item label="Java" value="java" />
<Picker.Item label="JavaScript" value="js" />
</Picker>
Dưới đây là một Snack cho thấy một ví dụ đầy đủ cho chiều cao khác nhau (mã copy dán dưới đây):
import React, { Component } from 'react';
import { Text, View, StyleSheet, Picker } from 'react-native';
export default class App extends Component {
constructor(props) {
super(props)
this.state = {
language: 'haxe',
firstLanguage: 'java',
secondLanguage: 'js',
}
}
render() {
return (
<View style={styles.container}>
<Text style={styles.title}>Unstyled:</Text>
<Picker
style={[styles.picker]} itemStyle={styles.pickerItem}
selectedValue={this.state.language}
onValueChange={(itemValue) => this.setState({language: itemValue})}
>
<Picker.Item label="Java" value="java" />
<Picker.Item label="JavaScript" value="js" />
<Picker.Item label="Python" value="python" />
<Picker.Item label="Haxe" value="haxe" />
</Picker>
<Text style={styles.title}>Shows one row:</Text>
<Picker
style={[styles.onePicker]} itemStyle={styles.onePickerItem}
selectedValue={this.state.firstLanguage}
onValueChange={(itemValue) => this.setState({firstLanguage: itemValue})}
>
<Picker.Item label="Java" value="java" />
<Picker.Item label="JavaScript" value="js" />
<Picker.Item label="Python" value="python" />
<Picker.Item label="Haxe" value="haxe" />
</Picker>
<Text style={styles.title}>Shows above and below values:</Text>
<Picker
style={[styles.twoPickers]} itemStyle={styles.twoPickerItems}
selectedValue={this.state.secondLanguage}
onValueChange={(itemValue) => this.setState({secondLanguage: itemValue})}
>
<Picker.Item label="Java" value="java" />
<Picker.Item label="JavaScript" value="js" />
<Picker.Item label="Python" value="python" />
<Picker.Item label="Haxe" value="haxe" />
</Picker>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
flexDirection: 'column',
alignItems: 'center',
padding: 20,
backgroundColor: 'white',
},
title: {
fontSize: 18,
fontWeight: 'bold',
marginTop: 20,
marginBottom: 10,
},
picker: {
width: 200,
backgroundColor: '#FFF0E0',
borderColor: 'black',
borderWidth: 1,
},
pickerItem: {
color: 'red'
},
onePicker: {
width: 200,
height: 44,
backgroundColor: '#FFF0E0',
borderColor: 'black',
borderWidth: 1,
},
onePickerItem: {
height: 44,
color: 'red'
},
twoPickers: {
width: 200,
height: 88,
backgroundColor: '#FFF0E0',
borderColor: 'black',
borderWidth: 1,
},
twoPickerItems: {
height: 88,
color: 'red'
},
});
Các vấn đề liên quan
- 1. Chiều rộng/chiều cao tối thiểu trong React Native
- 2. Cách tính chiều rộng của văn bản trong thành phần TextInput trong React Native?
- 3. Làm cách nào để tạo các thành phần trong React Native mà không sử dụng JSX?
- 4. Đặt chiều cao của ListView trong React Native
- 5. Làm cách nào để chuyển giá trị cho thành phần khác trong React-Native-Router-Flux?
- 6. Làm thế nào để làm cho EditText android nhỏ hơn chiều cao mặc định?
- 7. Thành phần giao diện người dùng có kích thước động nguyên bản cho React Native
- 8. Làm cách nào để lấy chiều cao Thanh trạng thái iOS trong ứng dụng React-Native?
- 9. Làm thế nào để làm cho draggable nhớ vị trí của nó trong React Native
- 10. Làm cách nào để nhận được tên chuỗi của lớp thành phần React Native?
- 11. Làm cho chiều rộng của phần tử có liên quan đến chiều cao của phần tử?
- 12. jQuery - Phát hiện xem chiều cao của phần tử có lớn hơn chiều cao cửa sổ hay không và làm điều gì đó về nó
- 13. truy vấn phương tiện cho kích thước trình duyệt có chiều rộng nhỏ hơn chiều cao
- 14. Có cách nào để làm letterSpacing cho TextInput trong React Native không?
- 15. Chèn hàng bảng trống có chiều cao nhỏ hơn
- 16. Có cách nào để làm cho các ô DataGridViewCheckBox nhỏ hơn không?
- 17. Làm cho chế độ xem 80% chiều rộng của phụ huynh trong React Native
- 18. React-Native + crypto: Cách tạo HMAC trong React-Native?
- 19. Làm cách nào để chuyển đổi chiều cao của phần tử được cho trong vh thành pixel?
- 20. Thành phần văn bản dạng dốc với React Native
- 21. Làm cách nào để tạo thanh tiến trình cho yêu cầu API trong React Native?
- 22. Thành phần sẽ không hiển thị trong NavigatorIOS - React Native
- 23. Chiều rộng màn hình trong React Native
- 24. Cách tìm chiều cao của thanh trạng thái trong Android thông qua React Native?
- 25. Có thể gọi một hàm trong một thành phần gốc trong React Native không?
- 26. Cấu trúc có thể nhỏ hơn tổng của các thành phần của nó không?
- 27. Cách đặt chiều cao của một thành phần bố cục thành cùng chiều cao của một thành phần khác?
- 28. Cách làm cho TimePicker nhỏ hơn
- 29. Làm cách nào để chuyển trạng thái gốc cho các thành phần con của nó?
- 30. CSS để ẩn phần tử HTML, giữ chiều rộng và chiều cao của nó?
Ông hỏi về RN chọn và bạn đưa ra một hoàn toàn khác nhau lib –