在ReactNative中创建带有渐变边框的按钮
来自菜鸟教程
在过去的两个月里,我一直在使用 React Native,在这个简短的教程中,我将展示如何创建一个带有渐变边框的按钮,就像这个:
为此,我们将使用来自 Expo 的 LinearGradient 组件。 如果您对 Expo 不熟悉,可以在此处 阅读我们的 介绍。
入门
首先让我们从创建一个自定义按钮组件开始:
<TouchableOpacity onPress={() => {})}> <View style={styles.circleGradient}> <Text style={styles.visit}>Login</Text> </View> </TouchableOpacity>
让我们为圆角定义这样的样式:
circleGradient: { backgroundColor: "white", borderRadius: 5 }, visit: { margin: 4, paddingHorizontal: 6, textAlign: "center", backgroundColor: "white", color: '#008f68', fontSize: 12 }
添加渐变边框
React Native 不支持开箱即用的渐变边框,因此我们将 View
嵌套在一个将扮演渐变边框角色的 View 中。
首先,我们将从 Expo 导入 LinearGradient:
import { LinearGradient } from "expo";
让我们定义渐变开始和结束的位置。 根据 文档 我们可以通过使用 start
和 end
道具来做到这一点。 colors
属性包含代表渐变色标的颜色数组。
然后用 LinearGradient 包裹我们的视图:
<TouchableOpacity onPress={() => {})}> <LinearGradient start={[0, 0.5]} end={[1, 0.5]} colors={['#EFBB35', '#4AAE9B']} style={{borderRadius: 5}}> <View style={styles.circleGradient}> <Text style={styles.visit}>Login</Text> </View> </LinearGradient> </TouchableOpacity>
请注意,我们将 borderRadius 样式应用于具有与我们的视图相同的值的 LinearGradient。 我们现在有一个带有圆形边框的简单按钮,但没有明显的渐变:
那是因为我们的 View
和 LinearGradient
组件具有相同的大小。 让我们为 View 组件添加一个边距:
circleGradient: { margin: 1, backgroundColor: "white", borderRadius: 5 },
瞧,我们有一个带有渐变边框的漂亮按钮! 🌈