Моя кнопка, кажется, не расположена в моем родном проекте. Код, который у меня есть, выглядит так:
<Button style = "centered"
onPress = {() => {Alert.alert('Button tapped!');} }
title = "Confirm"
/>
Затем в моей таблице стилей я сделал это:
centered:{
position: 'absolute',
top : 350,
}
И это не сработало. Некоторые другие вещи, которые я пробовал:
style = {centered}
Выдает ошибку времени выполнения, говорящую о том, что не удается найти переменную по центру
class = "centered"
Тоже ничего не делает.
Согласно предложению, я попытался создать отдельный вид только для своей кнопки, но он выдал ошибку, говорящую о том, что выражения JSX должны иметь один родительский элемент. Код, который я пробовал:
<View style = {styles.container}>
<Text>Select a time to be notified : </Text>
<Picker
style = {styles.picker} itemStyle = {styles.pickerItem}
selectedValue = {this.state.time}
onValueChange = {(itemValue) => this.setState({time: itemValue})}
>
<Picker.Item label = "Now" value = "now" />
<Picker.Item label = "After 1 minute" value = "1min" />
<Picker.Item label = "After 5 minutes" value = "5min" />
<Picker.Item label = "Custom time" value = "ctime" />
</Picker>
</View>
<View>
<Button style = {{marginTop:350}}
onPress = {() => {Alert.alert('Button tapped!');} }
title = "Confirm"
/>
</View>
);
Таблица стилей:
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#fff',
alignItems: 'center',
justifyContent: 'center',
},
picker :{
width: 200,
height: 44,
backgroundColor: '#CCE6FF',
borderColor: 'white',
borderWidth: 1,
},
pickerItem :{
width: 200,
height: 88,
backgroundColor: '#CCE6FF',
borderColor: 'black',
borderWidth: 1,
},
notificationButton :{
position: 'absolute',
top : 50,
},
});
@WilomGfx Я не знаю, какую часть вы имеете в виду, но я сделал часть, в которой я создаю таблицу стилей. Я тоже пробовал style = {[styles.centered]}
, тоже не получилось
вам нужно сделать что-то вроде style = {{ marginTop: 34, color: 'blue'}}
@ЮниусЛ. Я тоже это пробовал. Итак, сейчас у меня есть `<Button style = {{marginTop:350}}`... Все еще не работает
Вам нужно изменить свойства:
<Button style = {styles.centered}
onPress = {() => {Alert.alert('Button tapped!');} }
title = "Confirm"
/>
и стиль:
const styles = StyleSheet.create({
centered:{
position: 'absolute',
top : 350,
}
})
Я сделал все, кроме замены {[styles.centered]}
на {{styles.centered}}
. Пока это все еще не работает. Когда я изменил его на фигурные скобки, он выдал ошибку компиляции, в которой говорилось, что запятая ожидается. Я уже не понимаю, что происходит ;-;
Извините за ошибку, это должно быть {styles.centered}, я редактирую ответ
Спасибо! Мой вопрос уже решен, но все же ценю ваш ответ!
Добавьте кнопку в View
и стилизуйте этот вид, чтобы центрировать кнопку, используя alignItems
и justifyContent
.
<View>
<View style = {styles.container}>
<Text>Select a time to be notified : </Text>
<Picker
style = {styles.picker}
itemStyle = {styles.pickerItem}
selectedValue = {this.state.time}
onValueChange = {itemValue => this.setState({ time: itemValue })}>
<Picker.Item label = "Now" value = "now" />
<Picker.Item label = "After 1 minute" value = "1min" />
<Picker.Item label = "After 5 minutes" value = "5min" />
<Picker.Item label = "Custom time" value = "ctime" />
</Picker>
</View>
<View style = {styles.confirmButton}>
<Button
style = {{ marginTop: 350 }}
onPress = {() => {
Alert.alert('Button tapped!');
}}
title = "Confirm"
/>
</View>
</View>
Стиль контейнера кнопки
confirmButton: {
justifyContent: 'center',
alignItems: 'center',
marginTop: 10,
}
Кнопка, которую я пытаюсь стилизовать, уже находится в представлении, и когда я попытался создать другое представление, это выдало еще одну ошибку компиляции, я полагаю, у нас может быть только один элемент представления во всем этом?
«Выражения JSX должны иметь один родительский элемент» в строке, где я закрываю скобки для своего возврата
Сделанный. Он прикреплен в конце
добавить стиль в представление
Сделано также. Я попытался также закомментировать justifyContent и alignItems, и все, что он сделал, это переместил все в верхний левый угол, и я все еще не мог свободно перемещать свою кнопку.
Таблица стилей, содержащая информацию о представлении, также прилагается к вопросу. Я изменил имя класса наnotificationButton в целях стилизации.
см. мой обновленный ответ, если у вас есть два элемента в операторе возврата, оберните их в представление, поэтому он выдавал вам эту ошибку.
Если вы хотите расположить кнопку только по центру экрана, оберните ее View
, как указано в Юниус.
Глядя на ваш отредактированный вопрос с прикрепленным кодом. Вы можете вернуть только один элемент из метода render
. Итак, вам нужно обернуть эти 2 View
в одного родителя View
Вы должны сделать это, чтобы добавить стиль, вы можете просто сделать
centered
. facebook.github.io/react-native/docs/stylesheet.html