我创建了一个由RelativeLayout和Button组成的Android游戏。玩家应首先触摸RelativeLayout上的某个位置,然后触摸按钮而不释放RelativeLayout上的触摸。
只要玩家手指仍然在RelativeLayout上,按钮似乎不会再接触到任何触摸。
Button有什么解决方案可以获得触摸事件吗?我已经阅读了有关“防止Android中的触摸事件被盗”(https://mobiarch.wordpress.com/2013/11/21/prevent-touch-event-theft-in-android/)的文章,但这对我不起作用。
谢谢!
编辑:添加了代码示例。单独触摸时(触摸按钮)和“触摸的RelativeLayout”都会被打印(释放第一次触摸时)。当我首先触摸RelativeLayout然后触摸按钮而不释放RelativeLayout时,仅打印RelativeLayout的消息。
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button button = (Button) findViewById(R.id.button);
button.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
Log.i("MainActivity", "Button clicked");
return false;
}
});
RelativeLayout rl = (RelativeLayout) findViewById(R.id.relLayout);
rl.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
Log.i("MainActivity", "RelativeLayout clicked");
return false;
}
});
}
}