使用 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】:

使用onPressInonPressOut

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 按下事件

react-native TouchableHighlight 禁用 onPress 颜色闪烁

单击使用 react-native 时如何更改图像和文本颜色?