非常奇怪的行为,我使用FlatList
,并且在它上面有2个浮动按钮(TouchableOpacity
)(绝对位置),当按下它们时,它们的背景颜色变黑。
这只发生在IOS上。
代码:
渲染
let content = (
<CollapsableNavList
onListScroll={this.showOrHideFilterButtons}
showFilterButtonsOnScroll={this.showOrHideFilterButtons}
style={styles.list}
isHorizontal={false}
dataModel={this.props.isFetching ? this.props.whileFetchingDisplayedResults : this.props.dataModel}
isFetching={false}
onRowSelect={this._onRowSelect}
didScrollWithOffset={this.didScrollWithOffset}
renderRowContent={this.renderRowContent}
keyExtractor={(item) => {
if (this.props.isFetching) {
return item
}
const property = item
return property.propertyId
}}
>
{header}
</CollapsableNavList>
)
return (
<View style={[styles.container, styles.relative]}>
<View style={styles.filterBtnBlock}>
<AdditionalSearchParamsButton
title='Map'
iconName='map'
onPress={this.onMapPress}
/>
</View>
{content}
</View>
)
export default class AdditionalSearchParamsButton extends Component {
// Prop type warnings
static propTypes = {
iconName: PropTypes.string.isRequired,
title: PropTypes.string.isRequired,
onPress: PropTypes.func.isRequired
}
render () {
const { iconName, title, onPress } = this.props
return (
<View>
<TouchableHighlight onPress={onPress} underlayColor={Colors.clear}>
<View style={styles.innerContainer}>
<McIcon
name={iconName}
style={styles.additionalPropsIcon}
/>
<Text style={styles.additionalPropsText}>{title}</Text>
</View>
</TouchableHighlight>
</View>
)
}
}
export default StyleSheet.create({
container: {
height: 50,
width: 150,
alignItems: 'center',
justifyContent: 'center'
},
innerContainer: {
height: 36,
width: 126,
flexDirection: 'row',
justifyContent: 'center',
alignItems: 'center',
backgroundColor: Colors.snow,
borderRadius: 18,
elevation: 2,
shadowOffset: {width: 0, height: 2},
shadowColor: 'black',
shadowOpacity: 0.3,
marginBottom: 5,
},
additionalPropsBtn: {
height: 36,
flexDirection: 'row',
justifyContent: 'center',
alignItems: 'center',
backgroundColor: Colors.snow
},
additionalPropsText: {
...Fonts.style.bigTitle,
color: Colors.blue,
paddingLeft: 10
},
additionalPropsIcon: {
fontSize: 22,
color: Colors.blue
}
})
我尝试过的事情:
- 设置颜色以使颜色清晰,但没有成功。
- 添加不同的图层,但没有成功。
- 这只发生在列表上,与ListView
同时发生。
答案 0 :(得分:12)
请使用TouchableOpacity
代替TouchableHighlight
TouchableHighlight
点击
答案 1 :(得分:3)
在你的TouchableOpacity道具中尝试这个
underlayColor="#ffffff00"
答案 2 :(得分:2)
尝试添加此subscriberCount
答案 3 :(得分:2)
我已经使用activeOpacity和背景色解决了它
<TouchableOpacity activeOpacity={1} backgroundColor="#FFF"></TouchableOpacity>
您可以使用自己的backgroundColor
答案 4 :(得分:1)
用View
将<TouchableHighlight underlayColor:"#fff">
换行