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