使用 TouchableHighlight 更改字体颜色
Posted
技术标签:
【中文标题】使用 TouchableHighlight 更改字体颜色【英文标题】:Change font color with TouchableHighlight 【发布时间】:2020-08-26 01:42:03 【问题描述】:如何更改按钮的字体颜色,问题是字体颜色不好看所以每次用户点击按钮时我也需要更改字体颜色。
我的做法:
普通按钮
按下按钮
<TouchableHighlight
underlayColor="#E5E6EA"
onPress=onOpen2
style=
fontFamily: "AktivGroteskCorp",
paddingLeft: 15,
paddingRight: 15,
borderRadius: 25.5,
flexDirection: "row",
justifyContent: "center",
marginBottom: 15,
width: vw * 67.2,
height: vw * 13.6,
alignItems: "center",
alignSelf: "center",
borderColor: "#E5E6EA",
borderWidth: 1,
>
<Text
style=
color: "#ffffff",
fontWeight: "bold",
fontSize: 16,
textAlign: "center",
alignSelf: "center",
>
LOG IN
</Text>
</TouchableHighlight>
【问题讨论】:
【参考方案1】:这是一个函数式的方式
首先,创建 useState,然后在 onPressIn/onPressOut 上对其进行操作
const TouchableHighlightExample = () =>
const [BtnColor, setBtnColor] = useState("red");
return (
<View>
<TouchableHighlight onPressIn=()=>setBtnColor("blue") onPressOut=()=>setBtnColor("red")>
<View>
<Text style=color: BtnColor>Touch Here</Text>
</View>
</TouchableHighlight>
</View>
);
【讨论】:
【参考方案2】:使用onPressIn
和onPressOut
https://reactnative.dev/docs/pressable#onpressin
state =
fontColor: 'red',
<TouchableHighlight
onPressIn=()=> this.setState(fontColor:'blue');
onPressOut=()=> this.setState(fontColor:'red');
>
<Text
style=
color: this.state.fontColor,
>
LOG IN
</Text>
</TouchableHighlight>
【讨论】:
不知道react上怎么用class,我一般都是用function以上是关于使用 TouchableHighlight 更改字体颜色的主要内容,如果未能解决你的问题,请参考以下文章
React Native TouchableHighlight 字体颜色文本更改
尽管使用官方反应本机文档中的源代码,但 TouchableHighlight 不起作用
React Native TouchableHighlight 忽略第一次点击事件
React Native TextInput 模糊消耗 TouchableHighlight 按下事件