Я создал службу, которая отображает пользовательский View
внутри настраиваемого LinearLayout
. Сервис работает нормально, и на экране отображается View
, но я не могу получить View
или LinearLayout
для получения любых событий касания (я просто хочу, чтобы один из них получал события касания, мне все равно). Это то, что у меня есть:Android onTouchEvent для пользовательского представления
MyLayout.java
public class MyLayout extends LinearLayout {
public MyLayout(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public MyLayout(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyLayout(Context context) {
super(context);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
onTouchEvent(ev);
return true;
}
@Override
public boolean onTouchEvent(MotionEvent event) {
Toast.makeText(this.getContext(), "Touched layout", Toast.LENGTH_SHORT).show();
Log.d("TOUCH", "Touched layout");
return true;
}
}
MyView.java
public class MyViewextends View{
public MyView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public MyView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyView(Context context) {
super(context);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
Toast.makeText(this.getContext(), "Touched View", Toast.LENGTH_SHORT).show();
Log.d("TOUCH", "Touched View");
return true;
}
}
Спасибо за ответ, я попытался это, но это не сработало. Ни «LinearLayout», ни «View» не регистрируют события касания. – yawers
в xml set android: clickable = "true" –
Я добавил это в xml для 'MyLayout' и для' MyView', но он до сих пор не регистрирует события касания. – yawers