Android 触摸和多点触摸事件
考虑一个相对布局,其中有三个大小可变的按钮,没有锚定参数,导致所有按钮都绘制在屏幕的左上角。考虑正在生成的单个物理触摸事件。以下哪个按钮将看到此事件?如果这三个都已注册为onTouch侦听器。这种行为背后的过程是怎样的?Android 触摸和多点触摸事件,android,Android,考虑一个相对布局,其中有三个大小可变的按钮,没有锚定参数,导致所有按钮都绘制在屏幕的左上角。考虑正在生成的单个物理触摸事件。以下哪个按钮将看到此事件?如果这三个都已注册为onTouch侦听器。这种行为背后的过程是怎样的?RelativeLayout在其内部的元素之间创建层次结构。您放在最低行的项目将位于所有其他项目的顶部。当您单击时,将调用其onClick方法。例如,RelativeLayout内有两个按钮,如: <Button android:id="@+id/button_a"
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" />
在这种情况下,当您点击这些按钮时,您将始终看到屏幕上单击的按钮B
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();
}
});