相对布局所有Childs Clickable

时间:2014-09-04 08:03:08

标签: java android

这个问题非常愚蠢但要问出来,但我想知道它是如何运作的?

我有一个Relative布局,其中2 ImageViews作为Child,具有单独的clickListner个实例。一个在另一个之上,具有相同的大小和属性。

互相重叠。两者都有不同的图像。 问题是,当我点击一张图像时,ImageView点击列表工具都被调用。

或者,如果我禁用点击ImageView顶部,下面的ImageView仍在工作,我点击上面的图像视图虽然。我是如何从两者获得回调的。

我只是想知道它是如何工作的?不是代码,我在为clickListners编写代码时没有任何问题,无论是一个工作还是两个。

<RelativeLayout

----
---
>
<ImageView
---
---<!--Child 1-->
<ImageView
---
---<!--Child 2-->



<RelativeLayout/>

3 个答案:

答案 0 :(得分:0)

取自here: 如果你只使用一个clicklistener,你可以这样做:

View.OnClickListener myOnlyhandler = new View.OnClickListener() {
  public void onClick(View v) {
      switch(v.getId()) {
        case R.id.b1:
          // it was the first button
          break;
        case R.id.b2:
          // it was the second button
          break;
      }
  }
}

答案 1 :(得分:0)

使用 ImageButton

布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<ImageButton
    android:id="@+id/imageButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:contentDescription="@string/content"
    android:src="@drawable/ic_launcher" />

 </LinearLayout>

活动类

public class MainActivity extends Activity {

ImageButton imgButton;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    addButtonListener();
}

public void addButtonListener() {

    imgButton = (ImageButton) findViewById(R.id.imageButton);
    imgButton.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View view) {
           Toast.makeText(MainActivity.this,"ImageButton is working!", Toast.LENGTH_SHORT).show();
        }
    });
}
}

答案 2 :(得分:0)

将此内容添加到父级布局中 机器人:上下文= “Yourclasshere” 然后将其提供给您的图像视图 机器人:的onclick = “点击”

然后实现on click侦听器或使方法像上面的Vitly A make