I received an email from a user pointing out a scrolling bug that sometimes manifests in the Domain Settings activity. After looking into it, it appears that Android’s touch parsing isn’t very smart about touches and swipes when they are over spinners (the drop down boxes). Usually, a finger must touch and then lift off before a touch is registered. However, in the case of spinners, the touch is registered before the finger lifts, disabling the swipe recognition.
You can see this happen by touching the text “System default” next to the “Tt” icon. If you hold your finger on those words, the background behind the spinner arrow will darken. Then, no matter if you swipe your finger or not, the spinner drop down will open when the finger is lifted.
Compare this to touching the percent text under the spinner, which is in a TextView. Tapping this text is programmed to open the spinner, but only if no swipe is detected. You can hold you finger there as long as you like, but if you turn it into a swipe before you lift up your finger, the spinner doesn’t open.
So, if you touch the spinner you only have about 250 ms (rough guess) to move it before scrolling the settings doesn’t work.
This is a bug in Android’s touch processing, and there isn’t much I can do about it besides redesigning the interface to not use spinners. I am not inclined to do that, as I think the spinners generally work well. In all the years I have used the app I have not noticed this bug before and I haven’t had anyone else point it out, so I don’t think it is something that gets in the way of most users’ experience. Typically, when swiping, a person’s finger is already moving vertically before making contact with the screen, which doesn’t trip this bug. Also, touching any of the white space that isn’t inline with a spinner doesn’t trip the bug.
In the past, I would have submitted this bug to Google, but I have learned they ignore almost all bug submissions, so I likely won’t bother.
Below is a video showing the bug in action. It should be noted that the font size TextView is programmed to open the spinner when tapped, but that isn’t called when the touch turns into a swipe. Neither does it happen on the switches above or the radio buttons on the card views below. The only view that has issues is the spinner.
One response to “Bug in Android’s Spinner Touch Parser”
[…] Read More […]