簡體   English   中英

在自定義控件上實現View.OnTouchListener

[英]Implement View.OnTouchListener on custom control

我創建了一個擴展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,該怎么辦?

我知道,已經晚了,但是我通過添加來解決了我的問題

this.setOnTouchListener(this);

到構造函數

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM