我有一个简单的图像按钮,它改变了它的图像onTouchStart和onRelease。在iOS上,它可以像预期的那样工作,但是在Android上,当图像改变时,按钮闪烁。 它看起来像是,如果每次我触摸它时都必须再次加载图像。React Native - 为什么我的图像按钮在Android上闪烁?

class MyApp extends React.Component {

constructor(props) {

super(props);

}

render() {

return (

style={ styles.button }/>

);

}

}

class ImageButton extends React.Component {

constructor(props: {}) {

super(props);

this.image = {

normal: require('./img/button.png'),

highlight: require('./img/button-touched.png')

};

this.state = {

image: this.image.normal

};

}

onTouchStart() {

// do some stuff

// set the highlighted image

this.setState({

image: this.image.highlight

});

}

onTouchEnd() {

this.setState({

image: this.image.normal

})

}

onTouchCancel() {

this.setState({

image: this.image.normal

});

}

componentWillReceiveProps(nextProps) {

this.setState({

image: nextProps.image.normal

});

}

render() {

return (

onStartShouldSetResponder={() => true }

onResponderGrant={ this.onTouchStart.bind(this) }

onResponderRelease={ this.onTouchEnd.bind(this) }

onResponderTerminate={ this.onTouchCancel.bind(this) }

onResponderReject={ this.onTouchCancel.bind(this) }>

);

}

}

const styles = StyleSheet.create({

container: {

flex: 1,

justifyContent: 'center',

alignItems: 'center',

backgroundColor: '#E4E4E4',

},

button: {

backgroundColor: 'transparent',

},

});

AppRegistry.registerComponent('schwein',() => Schwein);

2017-02-17

StefanSL

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐