TouchableHighlight的子项具有不透明度时,在按下TouchableHighlight之后其不透明度就会消失(设置为1)。

在此处运行示例:https://rnplay.org/apps/c0NIjQ

最小示例:

<TouchableHighlight onPress={() => {}}>
    <Text style={{ opacity: 0.5 }}>
        Press me!
    </Text>
</TouchableHighlight>

有没有办法解决这个问题,还是React Native中的错误?

最佳答案

TouchableOpacity可以像我对TouchableHighlight(live code sample)的预期那样工作,因此使用TouchableOpacity可能是一种解决方法。但是请注意,TouchableOpacity没有处于 Activity 状态的底衬,因此您在底下渲染的任何东西都会在印刷时“闪耀”。因此,它不是TouchableHighlight的完美替代品。

我不确定TouchableHighlight的行为是否是故意的,是某种权衡还是实际上是一个错误,但是通过查看代码,您可以清楚地看出它在这方面与TouchableOpacity有何不同:

  • TouchableHighlight always sets the child's opacity to 1 when it goes inactive.
  • TouchableOpacity sets the child's opacity to childStyles.opacity if it is set, otherwise 1, when it goes inactive.
  • 关于react-native - TouchableHighlight之子在发布时失去了不透明样式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41693073/

    10-13 04:39