如何更改反应原生按钮的背景颜色

时间:2017-06-28 09:19:08

标签: javascript reactjs button react-native

我正在尝试更改按钮的背景颜色,但似乎没有任何效果,我尝试了凸起的属性,也许我使用不正确。你们有没有想法?

 import React from 'react';
 import { StyleSheet, Text, View, Button, TouchableHighlight } from 'react-native';

export default class App extends React.Component {
state={
  name: "Mamadou"
};

myPress = () => {
  this.setState({
    name: "Coulibaly"
  });
};

  render() {
    return (
      <View style={styles.container}>

          <Button       
          title={this.state.name}
          color="red"
          onPress={this.myPress}
        />   

      </View>

    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: '#fff',
    alignItems: 'center',
    justifyContent: 'center',
  },

});

4 个答案:

答案 0 :(得分:23)

使用此选项将背景颜色添加到iOS中的按钮:

<强>样式

  loginScreenButton:{
    marginRight:40,
    marginLeft:40,
   marginTop:10,
    paddingTop:10,
    paddingBottom:10,
    backgroundColor:'#1E6738',
    borderRadius:10,
    borderWidth: 1,
    borderColor: '#fff'
  },
  loginText:{
      color:'#fff',
      textAlign:'center',
      paddingLeft : 10,
      paddingRight : 10
  }

按钮:

<TouchableOpacity
          style={styles.loginScreenButton}
          onPress={() => navigate('HomeScreen')}
          underlayColor='#fff'>
          <Text style={styles.loginText}>Login</Text>
 </TouchableOpacity>

enter image description here

对于Android,它只适用于Button color属性:

<Button  onPress={onPressAction}  title="Login"  color="#1E6738"  accessibilityLabel="Learn more about this button" />

答案 1 :(得分:7)

我建议使用React Native Elements包,它允许在buttonStyle属性中插入样式。

<强>样式

const styles = StyleSheet.create({
   container: {
      flex: 1
   },
   button: {
      backgroundColor: '#00aeef',
      borderColor: 'red',
      borderWidth: 5,
      borderRadius: 15       
   }
})

<强>渲染()

render() {
   return (
      <View style={styles.container}>
          <Button
             buttonStyle={styles.button}
             title="Example"
             onPress={() => {}}/>
      </View>
   )
}

<强>效果Effect button

Expo Snack:https://snack.expo.io/Bk3zI0u0G

答案 2 :(得分:2)

&#34;颜色&#34;只有当您为Android建立时,属性才适用于背景。

除此之外,我个人觉得管理自定义按钮更容易。这是创建自己的组件命名按钮,并将其作为带有文本的视图。这种方式更易于管理,您可以像按钮一样轻松导入它。

答案 3 :(得分:-3)

您应该使用十六进制代码backgroundColor="#FF0000"代替color="red"。另请使用raised={true}其他明智的背景颜色不能覆盖。