我正在为我的RC车在Android上制作一个“操纵杆”应用程序,我希望能够同时按下两个或更多按钮以实现更精确的控制。
但是,现在我只能按一个按钮,其他按钮在我释放按下按钮之后才会响应。它们甚至不会改变它们的不透明度,所以它在应用程序的逻辑中不是问题。点击处理程序也不执行时间关键操作,因此我认为UI不会被卡住。
这是我按钮的代码:
<R.View>
{this.btn(Car.Transmission.Forward, 'Forward')}
</R.View>
<R.View flexDirection="row">
{this.btn(Car.Transmission.Left, 'Left')}
{this.btn(Car.Transmission.Stop, 'Stop')}
{this.btn(Car.Transmission.Right, 'Right')}
</R.View>
<R.View>
{this.btn(Car.Transmission.Backward, 'Backward')}
</R.View>
btn(transmission, text) {
return <MyButton
onPressIn={() => {
this.drive(transmission)
}}
onPressOut={() => {
this.drive(Car.Transmission.Neutral)
}}
text={text} />
}
export class MyButton extends React.Component {
render() {
var {onPressIn, onPressOut, text, disabled} = this.props
let textStyle = disabled ? [style.button, style.disabled] : [style.button]
return (
<R.TouchableOpacity onPressIn={onPressIn} onPressOut={onPressOut} disabled={disabled}>
<R.Text style={textStyle} >{text}</R.Text>
</R.TouchableOpacity>
)
}
}
也许我不应该使用TouchableOpacity
?
编辑:我差不多完成了它,但是......当我在onPanResponderMove
回调中收到触摸位置时,我的nativeEvent.locationY
值跳得像个疯子一样(161,0 ,163,11,29,...)当我点击屏幕上的同一点时...首先,我认为这是因为USB电缆和充电,但通过Wi-Fi,我得到了相同的结果。真奇怪。有什么想法吗?