LinearLayout OnClickListener没有响应

时间:2010-09-01 13:19:49

标签: android android-linearlayout

我正在通过扩展LinearLayout来创建自定义小部件。我的自定义小部件中的一个元素是线性布局,从另一个布局中膨胀。当我设置OnClickListener它没有响应。你能告诉我吗?

谢谢!

3 个答案:

答案 0 :(得分:3)

而不是使用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 
}

答案 1 :(得分:1)

您是否声明了LinearLayout可点击?

您可以在XML中执行此操作:

机器人:可点击= “真”

或Java代码:

myLinearLayout.setClickable(true);

另请参阅此问题上的其他StackOverflow主题:

onClickListener on a LinearLayout

答案 2 :(得分:1)

确保将 LinearLayout 中的所有子项都设置为 android:clickable="false"。比 myLinearLayout.setClickable( true ) 更适合我。