Я создал onTouchListener
. К сожалению, метод onTouch () throws
получил предупреждение:
com/calculator/activitys/Calculator$1#onTouch should call View#performClick when a click is detected
Что это значит? Я не нашел информации об этом предупреждении. Вот полный код:
LinearLayout llCalculatorContent = (LinearLayout) fragmentView.findViewById(R.id.calculator_content);
llCalculatorContent.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
Tools.hideKeyboard(getActivity(), getView());
getView().clearFocus();
return false;
}
});
android
ontouchlistener
Trzy Gracje
источник
источник
v.performClick()
. Реализация будет воспроизводить небольшой звук (если он включен на вашем устройстве) и вызывать onClickListener, который вы, вероятно, не переопределилиОтветы:
Ну вот:
источник
performClick
, верно? В этом случае я не понимаю, почему предупреждение о ворсинках все еще существуетВы можете подавить ворс
Вам следует зайти
performClick()
внутрьonTouchEvent()
.или
OnTouch
течьПодробнее здесь
источник
performClick()
.Если вы не используете,
Custom View
который явно переопределяетonPerformClick
, предупреждение не будет удалено, просто следуя ответу Секко.В дополнение к его ответу, чтобы сделать то же самое с такими классами, как
android.widget.Button
или,Button
вам нужно создать простое настраиваемое представление, которое расширяет целевое представление.Пример :
Пользовательский класс просмотра:
XML :
Java :
Текущие проблемы: предупреждение устраняется в среде IDE, но на реальном устройстве Android оно практически не выполняет щелчок.
РЕДАКТИРОВАТЬ : исправлено получение события щелчка: используйте
View.setPressed(boolean)
источник
просто вызовите метод performClick, например:
источник
У меня была аналогичная проблема с a,
MultiTouchListener
и я решил, что она реализуетGestureDetector
и прослушиваетSingleTap
(это не удаляет предупреждение, но начинает запускатьonClick
события в моем представлении)источник