Android GestureOverlayView隐藏子视图';s事件

Android GestureOverlayView隐藏子视图';s事件,android,gesture,Android,Gesture,我已经按照教程在我的Android应用程序中创建了一个GestureOverlayView。我的主视图中有一个颜色选择器,在它上面我添加了手势叠加。现在,覆盖可以正常工作,但是当覆盖在顶部时,不会触发颜色选择器的颜色更改事件。这是活动的代码 public class LightingActivity extends Activity implements OnColorChangedListener, OnGesturePerformedListener { private ColorP

我已经按照教程在我的Android应用程序中创建了一个GestureOverlayView。我的主视图中有一个颜色选择器,在它上面我添加了手势叠加。现在,覆盖可以正常工作,但是当覆盖在顶部时,不会触发颜色选择器的颜色更改事件。这是活动的代码

    public class LightingActivity extends Activity implements OnColorChangedListener, OnGesturePerformedListener {
private ColorPicker picker;
private GestureLibrary gestureLib;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_lighting);
    picker = (ColorPicker) findViewById(R.id.picker);
    //Register the event handler for color changes
    picker.setOnColorChangedListener(this);
    GestureOverlayView gestureOverlayView = new GestureOverlayView(this);
        View inflate = getLayoutInflater().inflate(R.layout.activity_lighting, null);
    gestureOverlayView.addView(inflate);
    gestureOverlayView.addOnGesturePerformedListener(this);
    gestureLib = GestureLibraries.fromRawResource(this, R.raw.gestures);
    if (!gestureLib.load()) {
      finish();
    }
    setContentView(gestureOverlayView);

}

@Override
public void onColorChanged(int color) {
    Toast.makeText(this, color, Toast.LENGTH_LONG).show();
}

@Override
public void onGesturePerformed(GestureOverlayView overlay, Gesture gesture) {
    ArrayList<Prediction> predictions = gestureLib.recognize(gesture);
    for (Prediction prediction : predictions) {
      if (prediction.score > 1.0) {
        Toast.makeText(this, prediction.name, Toast.LENGTH_SHORT)
            .show();
      }
    }

}
}
公共类LightingActivity扩展了活动实现OnColorChangedListener、OnEsturePerformedListener{
私人色彩采集器;
私人手势库手势库;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(右布局、活动照明);
选择器=(颜色选择器)findViewById(R.id.picker);
//为颜色更改注册事件处理程序
picker.setOnColorChangedListener(此);
GestureOverlayView GestureOverlayView=新的GestureOverlayView(此);
视图充气=GetLayoutFlater()。充气(R.layout.activity\u lighting,null);
手势OverlayView.addView(充气);
gestureOverlayView.AddOnTesturePerformedListener(此);
gestureLib=GestureLibraries.fromRawResource(this,R.raw.bities);
如果(!gestureLib.load()){
完成();
}
setContentView(gestureOverlayView);
}
@凌驾
公共空间颜色已更改(内部颜色){
Toast.makeText(这个,颜色,Toast.LENGTH_LONG).show();
}
@凌驾
已执行的检测的公共无效(手势覆盖视图覆盖、手势){
ArrayList predictions=gestureLib.recognize(手势);
用于(预测:预测){
如果(预测分数>1.0){
Toast.makeText(this,prediction.name,Toast.LENGTH\u SHORT)
.show();
}
}
}
}

我希望有手势叠加,同时仍然能够触发颜色选择器视图的onColorChanged事件。任何帮助都会很好!提前感谢。

在我看来,这不起作用,因为您正在将侦听器附加到您不使用的颜色选择器

在这几行中,您将侦听器附加到颜色选择器:

setContentView(R.layout.activity_lighting);
picker = (ColorPicker) findViewById(R.id.picker);
//Register the event handler for color changes
picker.setOnColorChangedListener(this);
之后,您将创建一个完全不同的视图
gestureOverlayView
,而之前的视图甚至没有显示出来