Я заметил, что некоторые кнопки не кажутся такими отзывчивыми, какими они могут быть. Это в равной степени относится к моему приложению и к большинству других приложений, которые я пробовал.
Когда я нажимаю кнопку, есть небольшая часть задержки (EDIT: я бы оценил около 20-50 мс), прежде чем кнопка загорится в нажатом состоянии. Некоторым приложениям удалось удалить этот бит задержки, например RealCalc (доступный на рынке), кнопки которого переключаются в нажатое состояние сразу после нажатия на них.
В большинстве случаев это отставание не заметно, но в моем случае, когда кнопки используются в пользовательской цифровой клавиатуре, эта небольшая часть задержки отстает от пользователя. RealCalc чувствует себя намного более отзывчивым и отполированным, потому что это отставание удалено.
Мой вопрос: как удалить эту задержку? Я знаю, что я мог бы просто подкласс, переопределить onTouchEvent и перейти оттуда, но я бы предпочел решение, используя только стандартные элементы управления и параметры. Я подозреваю, что решение может также мешать прокрутке, но я могу жить с этим.
EDIT: В частности, указанное отставание - это время, когда вы нажимаете палец на кнопку и удерживаете ее там, пока кнопка не переключится в нажатое состояние. Обработчик onClick вызывается, когда вы снова удаляете палец.
В некоторых ответах предлагалось переместить основную часть обработчика onClick в поток. Это не проблема. Чтобы сделать это вдвойне, я удалил все обработчики кликов, и крошечное отставание все еще существует.