解决方案 »

  1.   

    布局文件中UnityLayout和AndrLayout位置换一下
      

  2.   

    你debug看下,从FrameLayout就可以看下dispatchTouchEvent执行了以后,它跳到哪里执行了,,,
      

  3.   

    我是想让AndrLayout获取焦点,不让下层的UnityLayout获取焦点!!!
      

  4.   

    当然是我点击那一层就会分发到那一层了!我在上层中,设置了 DispatchTouchEvent返回super,然后onInterceptTouchEvent返回true,onTouchEvent返回true。
    这样是不是下层的就获取不到焦点了?
      

  5.   

    应该是DispatchTouchEvent返回true吧,不给它的子类传递点击事件
      

  6.   

    我在unityLayout中已经设置成了返回true 了啊!直接把事件给拦截了。就没有往下传递事件了!
      

  7.   

    我在unityLayout中已经设置成了返回true 了啊!直接把事件给拦截了。就没有往下传递事件了!so?你的问题是?
      

  8.   

    我是想unityLayout中包括的控件都不能获取焦点,在分发的时候返回true,按理来说应该是能实现我这个需求的,
    但是实际上不行。下层的还是能获取焦点。我下层包括的是unity的视图!!!
      

  9.   

    你的不能获取焦点,是想让unity视图内的控件,比如Button点击没效果,还是怎样,如果是我说的是想让按钮点击没效果,在unity布局进行事件拦截public boolean onInterceptTouchEvent(MotionEvent ev) {
            Toast.makeText(getContext(), "onInterceptTouchEvent", Toast.LENGTH_SHORT).show();
            return true;
        }在者,unity布局和AndrLayout是同一层次的,它们的ViewGroup都是FrameLayout
      

  10.   

    看我理解:
    UnityLayout和AndrLayout是存在于FrameLayout中间的两个同级View,所以一般的事件分发在他们的子类里面控制是影响不了别一个View的(事件分发是父子之间的传递吧),要想控制只有通过继承FrameLayout,拿到两个View手动去分发事件。