我正在通过扩展 LinearLayout 创建自定义小部件。我的自定义小部件中的一个元素是线性布局,从另一个布局膨胀。当我设置 OnClickListener 时,它没有响应。你能给些建议么?
谢谢!
我正在通过扩展 LinearLayout 创建自定义小部件。我的自定义小部件中的一个元素是线性布局,从另一个布局膨胀。当我设置 OnClickListener 时,它没有响应。你能给些建议么?
谢谢!
而不是使用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
}
您是否声明了 LinearLayout 可点击?
您可以在 XML 中执行此操作:
安卓:可点击=“真”
或在 Java 代码中:
myLinearLayout.setClickable(true);
另请参阅有关此问题的其他 StackOverflow 线程:
确保将 LinearLayout 中的所有子元素放入 android:clickable="false"。比 myLinearLayout.setClickable( true ) 更适合我。