同时接收父母和孩子的触摸事件(在UI上多点触摸)

时间:2016-04-03 01:18:45

标签: android touch multi-touch ontouchlistener ontouchevent

我创建了一个由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;
            }
        });

    }
}

0 个答案:

没有答案