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