我试图实现按钮上的阴影效果使用React Native,但没有工作,任何人可以帮助我吗?

gab6jxml  于 2022-11-17  发布在  React
关注(0)|答案(6)|浏览(117)

自定义按钮类从'react'导入React,{Component};从“react-native”导入{平台、样式表、文本、视图、按钮、可触摸不透明度};

导出默认类FlatButton扩展组件{ state={ backgroundColor:'#f01d71',背景颜色2:'#f01d71',已按下:false、};
如果您的状态是“按下”,请选择“按下”。true,背景颜色:'rgb(60,32,140)',背景颜色2:'#f01d71'})中的值;} else { this.setState({按下:false,背景颜色:'#f01d71',背景颜色2:'#f01d71'})中的值;} } render(){ return(〈查看样式={{

justifyContent: 'center',
      alignItems: 'center',
     
      }}>
      <TouchableOpacity
    style={{
    backgroundColor:this.state.backgroundColor, 
    borderRadius: 10,
    padding: 10,
    shadowColor: '#000000',
    shadowOffset: {
      width: 0,
      height: 3
    },
    shadowRadius: 5,
    shadowOpacity: 1.0
    }}
          onPress={()=>this.changeColor()}
            >
        <Text style={styles.buttonText}>{this.props.text}</Text>
      </TouchableOpacity>
  </View>
);

()}}
创建({文本:{颜色:'白色' },按钮文本:{颜色:'白色',字体粗细:'粗体',字体大小:16、辩护内容:'居中'、}、});

我正在呈现的第二个组件从“react”导入React,{useState,useEffect};从“react-native”导入{文本、视图、样式表、按钮、维度};从'../shared/FlatButton'常量导入平面按钮自定义视图=()=〉{ return(

</View>
        <View style= {styles.btnflex}>
             <FlatButton text="Crop" />
            <FlatButton text="Crop" />
            <FlatButton text="Crop" />
        </View>
       
    </View>
);

};
const styles=样式表。创建({容器:{ flex:1,//边框宽度:5、//边框颜色:'black',填充水平:10,

},
btnflex : {
     flexDirection :'row',
     marginTop: 5,
       padding : 5,
     justifyContent : 'space-between',
     borderWidth : 5,
    borderColor : 'red'
},

});
导出默认自定义视图;

输出为out put is this

ux6nzvsh

ux6nzvsh1#

使用高程属性还

<View style={{

            justifyContent: 'center',
            alignItems: 'center',
            padding:5
            }}>
            <TouchableOpacity
            style={{
            backgroundColor:'#ff0000', 
            borderRadius: 10,
            padding: 10,
            shadowColor: '#000000',
            shadowOffset: {
            width: 0,
            height: 3
            },
            shadowRadius: 10,
            shadowOpacity: 1.0,
            elevation: 5,
            }}>
              <Text style={styles.buttonText}>{"new button"}</Text>
            </TouchableOpacity>
          </View>
chhqkbe1

chhqkbe12#

请尝试这个软件包。2你可以添加不同类型的阴影和创造惊人的用户界面。

react-native-neomorph-shadows

下面是link的示例
link到库

5q4ezhmt

5q4ezhmt3#

除了上面提供的答案之外,我通常发现使用影子生成器是一种简单的方法,可以为android和ios获得所需的结果
https://ethercreative.github.io/react-native-shadow-generator/

8aqjt8rx

8aqjt8rx4#

您必须通过属性:

backgroundColor: 'some color here'

如果不通过,影子将无法正常工作。
在TouchableOpacity样式上尝试以下操作:

style={{
    backgroundColor: this.state.backgroundColor || '#fff', 
    borderRadius: 10,
    padding: 10,
    shadowColor: '#000000',
    shadowOffset: {
      width: 0,
      height: 3
    },
    shadowRadius: 5,
    shadowOpacity: 1.0
    }}

使用||按钮的背景将始终是白色的,因为您没有像在这里调用组件时那样传递参数this.state.backgroundColor。

<FlatButton text="Crop" />
igsr9ssn

igsr9ssn5#

在react-native中,shadowColor,shadowOffset,shadowOpacity和shadowRadius属性用于iOS中的阴影。而在android中,您只需要传递elevation属性。请确保添加backgroundColor。以下是一个示例:

shadowColor: "#000",
shadowOffset: {
    width: 0,
    height: 2,
},
shadowOpacity: 0.25,
shadowRadius: 3.84,

elevation: 5,
b0zn9rqh

b0zn9rqh6#

也许你可以用“仰角:希望这段代码能对你问题有所帮助

相关问题