2010-09-01 72 views
2

我正在通過擴展LinearLayout來創建自定義小部件。我的自定義小部件中的一個元素是線性佈局,從另一個佈局誇大。當我設置OnClickListener時,它沒有響應。你能給些建議麼?LinearLayout OnClickListener沒有響應

謝謝!

+0

請問我們有一些代碼嗎? – fredley 2010-09-01 13:21:48

回答

1

您是否聲明LinearLayout是可點擊的?

你可以做到這一點無論是在XML:

機器人:可點擊= 「真」

或Java代碼:

myLinearLayout.setClickable(真);

而且看到其他StackOverflow的線程上這樣一個問題:

onClickListener on a LinearLayout

+0

layout.setClickable(true);爲我工作。我嘗試從XML標誌但不工作 – Lunatikul 2016-02-10 14:31:29

2

而不是使用setOnClickListener使用setOnTouchListener 的此代碼將作爲一個onclick事件

YourLinearLayout.setOnTouchListener(new View.OnTouchListener() { 
     @Override 
     public boolean onTouch(View v, MotionEvent event) { 
      boolean returnValue = true; 
      if(event.getAction()==MotionEvent.ACTION_UP){ //on touch release 
       returnValue = false; //prevent default action on release 
       //do something here 
      } 
      return returnValue; 
     } 
    }); 

,然後添加這您的LinearLayout類攔截兒童觸摸事件

@Override 
public boolean onInterceptTouchEvent(MotionEvent ev) { 
    return true; //will prevent child touch events 
}