触摸和多点触控事件android

时间:2015-10-09 09:09:27

标签: android

考虑一个相对布局,其中包含三个可变大小的按钮,没有锚定参数,导致所有按钮都在屏幕的左上角绘制。考虑生成单个物理触摸事件。以下哪个按钮会看到此事件?如果这三个都注册为onTouch侦听器。这种行为背后的过程如何?

1 个答案:

答案 0 :(得分:0)

RelativeLayout在其中的元素之间创建层次结构。您放入最低行的项目将位于所有其他项目之上。单击时,将调用其onClick方法。例如,您在RelativeLayout中有两个按钮,如:

<Button
    android:id="@+id/button_a"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="You won't see this" />

<Button
    android:id="@+id/button_b"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="You will see this" />

让我们说你的Java代码是:

findViewById(R.id.button_a).setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Toast.makeText(this, "Button A clicked.", Toast.LENGTH_LONG).show();
    }
});
findViewById(R.id.button_b).setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Toast.makeText(getContext(), "Button B clicked", Toast.LENGTH_LONG).show();
    }
});

在这种情况下,当您点按这些按钮时,您将始终在屏幕上看到Button B clicked Toast。