我创建了一个扩展RelativeLayout的视图,我就是这个,这个视图能够处理触摸事件。所以我想到的是在我的自定义控件中实现OnTouchListener,如下所示:
class MyCustomControl extends RelativeLayout implements View.OnTouchListener {
public MyCustomControl (Context context) {
super(context);
}
public MyCustomControl (Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyCustomControl (Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
other_methods;
@Override
public boolean onTouch(View view, MotionEvent event) {
//event handle here.
}
}
它不起作用,但如果我这样做,它会:
MyCustomControl control = (MyCustomControl) LayoutInflater.from(context).inflate(R.layout.my_control, null);
control.setOnTouchListener(control);
我应该怎么做才能在我的自定义控件中内置(已定义和激活)touchListener?
答案 0 :(得分:1)
我知道,已经很晚了,但我通过添加
解决了我的问题this.setOnTouchListener(this);
到构造函数