Android将OnClick事件传递给FrameLayout中的基础视图

时间:2014-04-08 23:44:13

标签: android onclick android-framelayout

想法:我想将图像显示为背景。在此图像上,屏幕上的某个位置有一个可点击的视图。除此之外,还有一个带有一点透明整体的黑色draggabke图像(显示底层视图)。

这是通过FrameLayout解决的,而图像是第一帧,View是第二帧,'' Viewport''''''是第三帧。

现在的目标是,如果第二帧在视口中可见,则用户可以单击该第二帧。问题是,这种透明度只是在png''而不是框架本身。因此解决方案是将OnClick坐标传播到底层框架。这怎么可能?在这种情况下是否有FrameLayout的功能?

2 个答案:

答案 0 :(得分:0)

将上层设为可点击为假,我认为点击事件应该被它忽略并传递给第二帧

答案 1 :(得分:0)

  1. 创建一个扩展FrameLayout的自定义类
  2. 添加以下覆盖的方法
@Override public boolean onTouchEvent(MotionEvent event) {
  return false;
}

@Override public boolean onInterceptTouchEvent(MotionEvent event) {

  return true;

}
  1. 然后将触摸侦听器添加到框架布局,例如
framelayout.setOnTouchListener(new View.OnTouchListener() {


@Override
public boolean onTouch(View view, MotionEvent motionEvent) {

  underLyingView.onTouchEvent(motionEvent);
    return false;
  }
});
  1. 这会将onclick事件传递给位于FrameLayout下的LyingView下的视图